Vue基础
- Vue快速使用
- 模板语法之插值
- 文本指令
- 双向数据绑定
- 事件指令
- v-on
- 事件修饰符
- 属性指令
- style和class使用
- class属性
- style属性
- 条件渲染
- 循环渲染
- v-for
- key属性
- 数组的检测与更新
- 根据输入过滤案例
Vue快速使用
编辑器选择
只要能编写html的编辑器都可以。
引入:
快速使用
在js中创建vue对象:
使用模板语法:
我的名字是:{{ name }}
我的年龄是:{{ age }}
模板语法之插值
基本插值
vue对象的data键中可以放各种变量:
模板语法插值(根据变量名):
字符串:{{ name }}
数值:{{ age }}
数组:{{ hobby }}
对象:{{ obj }}
标签字符串:{{ link }}
三目运算符
age变量大于等于18,返回值为成年人,否则返回值为未成年人
三目运算符:{{ age>=18?"成年人":"未成年人" }}
文本指令
文本指令,写在标签上的,以 v- 开头的属性。
| 文本指令 | 作用 |
|---|---|
| v-text | 把变量值显示在标签上,不做渲染,与模板语法一样 |
| v-html | 标签字符串会渲染后在显示,其余与-v-text一样 |
| v-show | 显示与不显示,修改display属性,会一直在页面上 |
| v-if | 显示与不显示,不显示就是直接删除 |
使用:
显示文字1
显示文字2
页面效果:
f12查看元素:
v-show与v-if的区别
v-show为false时是设置display属性为none,而v-if为false时是直接删除标签。
双向数据绑定
双向数据绑定使用v-model指令:
name的值为{{ name }}
事件指令
v-on
按钮,标签的事件:单击事件、双击事件...
语法结构:
简写:
函数需要放在vue对象的methods中。
案例:点击按钮后名字更改:
名字:{{ name }}
输入框常见事件
| 事件 | 作用 |
|---|---|
| v-on:change | 失去焦点并且内容变化会触发 |
| v-on:blur | 失去焦点会触发 |
| v-on:input | 只要内容发生变化就会触发 |
事件修饰符
| 修饰事件 | 作用 |
|---|---|
| .stop | 只处理自己的事件,父控件冒泡的事件不处理 |
| .self | 只处理自己的事件,子控件冒泡的事件不处理 |
| .prevent | 阻止a链接的跳转 |
| .once | 事件只会触发一次(适用于抽奖页面) |
.stop
- 文本
.prevent
属性指令
标签都是有属性的,想要动态变化属性,可以使用v-bind。
简写:
动态变化属性:
style和class使用
标签属性style和class是可以有多个值的,所以在使用v-bind指令时可以让它等于数组或者对象。
class属性
css样式:
使用:
文本
文本
文本
等价于:
文本
文本
文本
数组类型和对象类型都可以添加多个值,字符串只能添加单个值,其中数组类型最好用。
style属性
style使用键值对添加值时,css属性可以使用驼峰,比如font-size,可以写成fontSize,也可以加引号'font-size'不变。
文本
文本
文本
字符串类型、数组类型和对象类型都可以添加多个值,其中对象类型最好用。
条件渲染
vue的三个判断条件指令:
- v-if:符合条件就显示
- v-else-if:与v-if搭配使用,与v-if差不多
- v-else:与v-if搭配使用,以上条件都不符合显示。
优秀
良好
不及格
如果score大于等于90,显示优秀;如果score大于等于60小于90,显示良好;如果以上都不符合,显示不及格。
优秀
良好
不及格
循环渲染
v-for
循环使用v-for指令。
{{ 变量名 }}
循环数字:
循环整型
{{ item }},
循环字符串:
循环字符串
{{ item }},
循环数组:
循环数组
{{ item }},
循环对象:
循环列表
只拿对象的值:{{ item }},
拿对象的键和值:{{ key }}:{{ value }},
key属性
vue会先复制原生的DOM,生成一个虚拟的DOM。数据修改时,会先在虚拟DOM上更改,然后和原生DOM比较,再进行页面上数据的更新,这样做提高了数据的刷新速度。
在使用v-for时,可以写一个key属性:
{{ item }}
这个作用相当于给标签写了个唯一属性key,它可以在数据更改时提高页面的刷新速度。
对于小项目来说,这个作用几乎没有。
数组的检测与更新
有时候,我们用一些数组,对象的方法更新数组或对象时,发现页面没有变化。
使用以下方法操作数组:
- 可以检测变动:push、pop、shift、unshift、splice、sort、reverse
- 不会检测变动:filter()、concat()、slice()、map(),新数组替换旧数组
{{ item }},
上面这个例子点击按钮后并不会改变页面上的数据。
解决方法:
{{ item }},
根据输入过滤案例
{{ item }}