Vue快速入门

文章目录

  • 一、Vue概述
    • 1.1什么是vue
    • 1.2Vue的特点
    • 1.3Vue和其他框架
  • 二、Vue实例选项和基础语法
    • 2.1Vue实例选项
    • 2.2第一个应用
    • 2.3Vue第一个数据处理应用
    • 2.4基础语法
      • 2.4.1插值表达式
      • 2.4.2指令:v-text/v-html
      • 2.4.3 v-once
      • 2.4.4v-show、v-if
      • 2.4.5v-bind
      • 2.4.6v-on
      • 2.4.7v-for
      • 2.4.8v-model
    • 2.5样式处理
      • (1) `class`样式处理(掌握)
      • (2) `style`样式处理(了解)

一、Vue概述

1.1什么是vue

Vue是一套用于快捷开发前端应用框架技术

1.2Vue的特点

Vue是一个用于快捷开发前端应用的框架,它的特点用于构建用户界面的前端渐进式框架,采用自底向上的逐层应用,只关于视图层,技术简单易于上手!

1.3Vue和其他框架

为什么要用Vue?

使用Vue可以实现视图页面上的组件重复使用,提高了开发和维护的效率!同时优化了页面的加载和渲染的效率,提高了用户体验!

Vue和其他框架?

前提:国内开发市场,使用的前端开发技术主要是VueReact,其他技术使用并不是很多!

和其他框架的简单对比

  • React
    • 重量级框架,一般中大型项目、大厂会直接使用React技术开发项目
    • 封装较为彻底,定制化功能较差,需要有一定的技术门槛
    • 运行时性能得到了优化
  • Angular
    • Angular 1:2016年最流行的前端开发框架技术
    • Angular 2+:国内逐渐失去了开发市场
  • Ember
    • 一个全能框架,学习路线较为漫长
    • 国内没有开发市场
  • Knockout
    • 一个传统的数据处理非常优秀的框架
    • 过时了
  • Polymer
    • 不适用于常规项目技术选型,有一定的技术门槛
  • Riot
    • 国内没有开发市场

二、Vue实例选项和基础语法

2.1Vue实例选项

Vue项目中,Vue实例是项目的核心对象,对实例的熟悉程度直接关乎后续的开发效率!

// 创建实例
const vm = new Vue({选项})

实例选项:实例上添加了功能支持

elelement缩写,表示实例绑定那个标签,该标签内部的数据由Vue实例管理

data:数据的意思,用来声明当前Vue实例管理的所有数据

methods:函数、方法的意思,用来声明当前实例管理的所有函数

filters:过滤器的意思,用来声明按照条件进行数据处理的函数

created()/mounted()/updated()...生命周期选项

components:组件的意思,用来声明子组件…

const vm = new Vue({el: "#app",data: {name: "Vue 2.x",version: "2.4.0"},methods: {say() {console.log("当前版本:2.4.0")}},filters: {format(args){return "拼接字符" + args}},created() {console.log("当前页面被创建的时候执行一下,处理一些准备数据")},components: {Headers,	// 添加页面头部组件Footers,	// 添加页面底部组件// ...}
})

2.2第一个应用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h1>{{name}}</h1></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {name: '作者:哈哈'}})</script>
</body>
</html>

在这里插入图片描述

总结:

传统的js数据渲染到页面中,需要通过dom操作(innerText/innerHTML)实现
vue应用中,可以直接通过Vue实例,使用固定语法( {{变量名称}} )将数据直接渲染到页面中,优化了DOM操作

2.3Vue第一个数据处理应用

开发一个简易的密码提取器,完成用户输入数据的同步

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app">输入密码:<input type="text" v-model="passwd"><p>密码提取:{{passwd}}</p></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {passwd: "待输入密码"}})</script>
</body></html>

在这里插入图片描述

2.4基础语法

2.4.1插值表达式

插值表达式:是Vue中一种固定的语法:{{ 变量 }},用于渲染输出变量的数据

  • 插值表达式功能比较强大,实际使用时较为常用的,就是渲染输出变量数据
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div id="app"><p>{{ info }}</p><p>{{ '插值表达式输出数据:'+info}}</p><p>{{ info.toUpperCase()}}</p><p>{{reverse(info)}}</p><p>{{ islogin?'谷爱凌':'武大靖'}}</p></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {info: "hello vue 2.x!",islogin: false},methods: {reverse(str) {return str.split('').reverse().join('');}}})</script>
</body></html>

在这里插入图片描述

2.4.2指令:v-text/v-html

什么是指令?

指令(Directive)Vue中的一个功能组件,用来封装简单的DOM操作的!实现了一些DOM操作功能!

Vue中指令的特点:都是v-字符开头的!
Vue中指令的特点:都是v-字符开头的!

指令描述
v-text将数据渲染到指定的标签中进行文本展示
v-html将数据渲染到指定的标签中进行解释展示
<div id="app"><p>{{info}}</p><p v-text="info"></p><p v-html="info"></p></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {info: ' <p>hahaha</p>'}})</script>

运行结果

2.4.3 v-once

指令描述
v-once一般和插值表达式或者数据渲染指令结合使用,用于一次性渲染数据
如果页面中有一些数据加载渲染后不再发生变化,可以结合v-once指令进行操作
    <div id="app"><p>{{name}}</p><p v-text="name"></p><p v-html="name"></p><p v-once>{{name}}</p><p v-text="name" v-once></p><p v-html="name" v-once></p></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {name: '羽生结弦'}})</script>

在这里插入图片描述

2.4.4v-show、v-if

指令描述
v-show根据判断条件是否为true,设置包含内容的 显示/隐藏
v-if根据判断条件是否为true,设置包含内容的 加载渲染/不加载渲染
    <div id="app"><h2 v-if="isLogin">尊敬的管理员,欢迎访问本系统</h2><h2 v-show="isLogin">xx会员您好,欢迎访问本系统</h2></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {isLogin: false}})</script>

运行结果为:空白
在这里插入图片描述

总结:关于v-showv-if

v-showv-if在页面上都能达到相同的效果,可以通过条件变量判断是否显示某些内容

  • v-show:通过display样式控制显示/隐藏
  • v-if:通过DOM操作加载/不加载控制显示/隐藏

指令先关的项目案例:选项卡

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}#tab-container {width: 500px;height: 500px;border: 1px solid #aaa;display: flex;flex-direction: column;border-radius: 5px;box-shadow: #000 0 0 2px;}#tab-container #title {display: flex;height: 50px;justify-content: space-between;border-bottom: 2px solid #888;}#tab-container #title div {cursor: pointer;text-align: center;height: 50px;line-height: 50px;width: 100%;border-right: 1px solid #888;}#tab-container #title div:last-child {border-right: 0;}#title div:hover,#title div.active {background: orangered;color: white;}#content div {position: absolute;}</style>
</head><body><div id="app"><div id="tab-container"><div id="title"><div :class="index===1?'active':''">001</div><div :class="index===2?'active':''">002</div><div :class="index===3?'active':''">003</div></div><div id="content"><div v-show="index===1">内容001</div><div v-show="index===2">内容002</div><div v-show="index===3">内容003</div></div></div></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {index: 1}})</script>
</body></html>

在这里插入图片描述

2.4.5v-bind

指令描述
v-bind动态操作标签属性的指令,让标签属性可以接受变量数据

注意:为了简化属性操作语法,可以简化v-bind:attr="value"为::attr="value"

 <div id="app"><!--v-bind:title="..."表示属性值是一个变量或者表达式--><p v-bind:title="info">苏翊鸣</p><p :title="info">苏翊鸣</p></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {info: '单板滑雪 男子大跳台 金牌得主'}})</script>

在这里插入图片描述

2.4.6v-on

指令描述
v-on用于给标签添加事件处理的指令

注意:v-on指令的事件操作在页面中是比较频繁的,语法上优化v-on:click="fn"优化@click="fn"

  <div id="app"><button v-on:click="mySay">点击我试试</button><button @click="mySay">点击我试试</button><input type="text" v-on:keyup="record"></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {},methods: {mySay() {alert("用户点击了按钮")},record(e) {console.log("用户输入了数据", e.target.value);}}})</script>

在这里插入图片描述
优选后的选项卡案例(可以实现鼠标进入修改内容):

 <div id="app"><div id="tab-container"><div id="title"><div @mouseover="index=1" class="index===1?'active':''">001</div><div @mouseover="index=2" :class="index===2?'active':''">002</div><div @mouseover="index=3" :class="index===3?'active':''">003</div></div><div id="content"><div v-show="index===1">内容001</div><div v-show="index===2">内容002</div><div v-show="index===3">内容003</div></div></div></div><script src="./vue.js"></script><script>const vm = new Vue({el: '#app',data: {index: 1}})</script>

2.4.7v-for

指令描述
v-for列表渲染指令,循环遍历集合数据,如数组中的多项数据

注意:循环遍历的数据,每一条数据可能发生新增/修改/删除的操作,为了保持数据的状态需要添加一个key属性绑定数据状态

<div id="app"><ul><li v-for="(job,index) in jobs" :key="index"><input type="checkbox" name="" id=""> {{index+1}}-{{job}}</li></ul></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {jobs: ["前端工程师","UI工程师","后端工程师","运维工程师","测试工程师"]}})</script>

在这里插入图片描述
案例操作:关于状态保持,添加工作案例

  <div id="app"><input type="text" v-model="jobname"><button @click="addJob">添加工作</button><ul><li v-for="(job, index) in jobs" :key="job.id"><input type="checkbox" name="" id=""> {{job.id}} - {{ job.name }}<button @click="delJob(index)">删除</button></li></ul></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {jobname: '',jobs: [{id: 1,name: "前端工程师"}, {id: 2,name: "UI工程师"}, {id: 3,name: "后端工程师"}]},methods: {addJob() {// 数组的开头添加一个数据this.jobs.unshift({id: 0,name: this.jobname})this.jobname = ''},delJob(index) {this.jobs.splice(index, 1)}}})</script>

2.4.8v-model

指令描述
v-model主要用于表单元素,用于数据双向绑定

参考代码:2.3数据绑定.html
在这里插入图片描述

2.5样式处理

标签的样式处理,一般包含行内样式(属性style)、和外联样式(属性class)完成样式修饰,在Vue中如何进行动态的控制?

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。

(1) class样式处理(掌握)

样式的处理有两种操作方式

  • 对象格式:通过变量控制某个样式是否生效【一定掌握】
  • 数组格式:通过定义多个变量和样式名称映射的形式,使用数组表达式设置多个样式【使用较少】

(2) style样式处理(了解)

样式的处理有两种操作方式:行内样式的处理上,了解它的基本语法即可,一般项目处理中很少使用

  • 对象格式
  • 数组格式
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>html, body{background:#ddd;}#title{text-align: center; line-height: 50px;width: 200px;height: 50px;background-color: white; color: black;}#title.active{background:orangered; color: white;}.dbg{background: #069;}.dfont{color: white;}.dfontsize{font-size: 22px;}</style>
</head>
<body><div id="app"><div id="title" :class="{active:isActive}" @click="isActive=true">选项卡标题</div><div :class="[dbg, dfont, dfontsize]">2022 中国冬奥运会</div><hr><div style="background-color: orangered;color: white;">7枚金牌 4枚银牌 2枚铜牌.. 持续增长中</div><div :style="{backgroundColor:sbackground, color: scolor, fontSize:ssize}">7枚金牌 4枚银牌 2枚铜牌.. 持续增长中</div></div><script src="./vue.js"></script><script>const vm = new Vue({el: "#app",data: {isActive: false,dbg: "dbg",dfont: "dfont",dfontsize: "dfontsize",sbackground: "orangered",scolor: "white",ssize: "22px"}})</script>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/70715.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅聊自媒体热点文章的万能写法,肯定可以帮到你

随着闭幕式的结束&#xff0c;这届冬奥会也落下帷幕。 要说今年这届冬奥&#xff0c;最火的莫过于他们两个人——谷爱凌和羽生结弦。 一个阳光自信完美到让人感慨上帝到底为她关上了哪扇门&#xff0c;一个用生命挑战4A让大家看到了奥林匹克精神。 圈内自媒体都说&#xff1a;为…

集合框架最详细知识点含例题

# 集合框架 **集合**&#xff1a;把具有相同数据类型的一组变量&#xff0c;汇聚成一个整体&#xff0c;就被称之为集合。 **集合框架**&#xff1a;为了表示和操作集合而规定的一种统一标准的体系结构。最简单的集合如数组、队列和列表等。任何集合框架一般包含&#xff1a;对…

AI赋能花样滑冰,景联文科技提供3D数据标注业务

在本届北京冬奥会花样滑冰男子单人自由滑中&#xff0c;日本选手羽生结弦如约挑战公认难度极高花滑动作4A&#xff08;阿克塞尔4周跳&#xff09;&#xff0c;虽然结局有些遗憾&#xff0c;在落地时不慎摔倒&#xff0c;并未挑战成功&#xff0c;最终以排名第四的总成绩无缘领奖…

一文读懂MySQL常用语法

MySQL查询语句链接地址 MySQL是什么&#xff1f; 成为MySQL大神的基础~ 数据类型 数值&#xff1a;整数&#xff0c;浮点数(小数) 日期&#xff1a;年&#xff0c;年月日&#xff0c;时分秒&#xff0c;年月日时分秒 字符串&#xff1a;文本类型字符串&#xff0c;二进制类型…

冬奥幕后故事:从低碳火炬到AI裁判,十四年后中国科技再上场

北京冬奥会开幕后&#xff0c;一个段子在社交媒体上流传甚广&#xff1a;“夏奥开幕式和冬奥开幕式就差半年&#xff0c;这半年人类科技进步真大啊。” 冬奥季终于到来。 2月4日晚&#xff0c;北京冬奥会开幕式来到了万众瞩目的主火炬点燃时刻&#xff0c;两名运动员共同点燃…

python实现图片切九宫格拼图

上一篇文章写道照片切成正方形&#xff0c;这篇文章将介绍&#xff0c;正方形怎么切割成九宫格&#xff0c;自己实现的九宫格发朋友很炫的。 先上代码&#xff1a; # -*- coding: utf-8 -*-from PIL import Image import sys# 将图片填充为正方形 def fill_image(image):width…

python实现图片切正方形

想做个照片切规则的正方形用来做九宫图&#xff0c;一般真实照片都是长方形那种&#xff0c;我见过别人把找照片填充成正方形&#xff0c;然后九宫格实在是太丑了&#xff0c;我喜欢整张图全是照片的。 不多赘述&#xff0c;上代码&#xff1a; import os from random import…

python深度学习基于pytorch——tensor中逐元素计算addcdiv()、clamp()

对tensor中的元素按个计算操作&#xff0c;方法如下图所示&#xff1a; 主要就是tensor之间的运算&#xff0c;已经附加代码输出部分&#xff0c;很容易理解。 import torch #coco #逐元素操作 torch.manual_seed(0) t torch.randn(1, 3) print(t) #tensor([[ 1.5410, -0.293…

如何有效追热点打造爆款作品,教你快速创作

追热点是小编必备的使命&#xff0c;没有热点的文章&#xff0c;就像没有珍珠的奶茶&#xff01;没有灵魂&#xff01;“拆解、模仿、反馈、总结、反复”&#xff0c;是助我们在任何领域从菜鸟到高手的秘密武器。今天就给大家介绍一下&#xff0c;追热点有什么必备姿势&#xf…

java集合框架

java集合框架 集合&#xff1a;把具有相同数据类型的一组变量&#xff0c;汇聚成一个整体&#xff0c;就被称之为集合。 集合框架&#xff1a;为了表示和操作集合而规定的一种统一标准的体系结构。最简单的集合如数组、队列和列表等。任何集合框架一般包含&#xff1a;对外的…

python实现 pdf转png格式

转换的图片要实现给固定像素坐标生成RGB值&#xff0c;找了好几段代码只能转换不能进行第二步 不说了&#xff0c;发出来就是解决了&#xff0c;先上代码&#xff1a; #!/usr/bin/env python # -*- coding:utf-8 -*- # Time : 2022/6/27 14:45 # Author : coco # File : tes…

css3学习(01认知,选择器,样式)

文章目录 一 基础认知1.1 CSS的介绍1.2 CSS语法规则1.3 CSS引入方式1.4 CSS常见三种引入方式的特点区别&#xff08;书写位置、作用范围、使用场景&#xff09; 二 基础选择器2.1 标签选择器2.2 类选择器2.3 id选择器2.4 通配符选择器 三 字体和文本样式【1】字体样式3.1.1 字体…

【CSS】——cascading stylesheets层叠式样式表

目录 0、CSS介绍 1、CSS语句组成 2、CSS选择器的选择方式 1&#xff09;CSS选择器的方式和选择器大全&#xff1a; 2&#xff09;常见的三种方式&#xff1a; 3、添加CSS方式 1&#xff09;外部样式表 html调用css代码 css文件 html文件 展示 2&#xff09;内部样式表…

汇佳学校|肖紫兮:花滑冠军+学科全优,背后有何秘诀?

隋文静、韩聪、申雪、赵宏博、羽生结弦、庞清、佟健……一连串热门花滑运动员/教练的名字闪耀了北京2022冬奥会&#xff0c;也让这项兼具优美与力量的冰上运动项目在大众之间火爆起来。 在汇佳&#xff0c;就有一名这样的冰上花滑运动员&#xff1a;默默苦练9年时间&#xff0…

从撞“新秀墙”到带团队,XTransfer海归码农升级之路

近来&#xff0c;互联网大厂纷纷被爆裁员&#xff0c;有些公司整个部门都被裁掉&#xff0c;有的应届生刚办理入职就被裁。几年前毕业进大厂是年轻人的首选&#xff0c;而如今大厂光芒正在逐渐褪去。 刚毕业不久的年轻人&#xff0c;应该是什么状态&#xff1f;很多人懵懵懂懂&…

HTML常用标签-1

1、标题标签 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

HTML简单介绍及你的第一个设计

一、HTML是啥&#xff1f; HTML的全称为超文本标记语言&#xff0c;英文名&#xff08;Hyper Text Markup Language&#xff09;是一种标记语言。它包括一系列标签&#xff0e;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HT…

数据处理Pandas学习笔记(一)

import pandas as pdpandas值series创建 t pd.Series([1, 2, 31, 12, 3, 4]) t0 1 1 2 2 31 3 12 4 3 5 4 dtype: int64type(t)pandas.core.series.Seriesseries指定索引 t2 pd.Series([1,23,3,2,3],indexlist(abcde)) t2a 1 b 23 c 3 d …

Vue学习笔记

点击查看视频 一、如何使用Vue 1.定义vue作用域 2.创建Vue对象 二、Vue重要的属性 el:指定绑定的容器 data:数据代理绑定数据 methods:写方法 在methods里不传参数默认传event参数&#xff0c;this是vm(即Vue创建的对象)&#xff0c;如果写箭头函数的时候会传windows&#x…

为了偶像羽生结弦学习日语,花6k报的网课,有继承资料的嘛~

先说一下是我的情况我是之前在电视上面看到羽生结弦才决定开始学日语的&#xff0c;是先自学的&#xff0c;然后报的网课过了n1。日语自学——狗都不学&#xff01; 自学的时候五十音想起来就练一下&#xff0c;跟着音频读一下。花了蛮长时间才真的记住。还有促音也不知…