官网:https://cn.vuejs.org/v2/api/
其他学习网站:
https://www.w3cschool.cn/aekdgs/nchp4dn1.html
http://www.runoob.com/vue2/vue-tutorial.html
Vue常用命令
文本渲染
v-text innerText
v-html innerHTML
v-once 静态/一次性
v-pre 原样输出
v-cloak 加载完成前隐藏属性名
条件渲染
v-if
v-show
v-if和v-show的总结
v-else
v-else-if
循环
V-for
V-on 事件处理 简写@
V-bind 属性绑定(单向) 简写 :
v-model 双向绑定
v-text ##
文本插值 与{{}}作用一样
v-html
插值内容以html形式显示。
改写上例,把v-text 改为v-html测试下效果
v-pre
跳过这个元素和它的子元素的编译过程,直接输出原始值。加快编译。
这时并不会输出我们的msg值,而是直接在网页中显示 {{msg}}
v-once
只渲染元素和组件一次,即使数据更新,也不再变化
v-cloak
防止页面加载进行时出现 vuejs 的变量名
HTML 修改成
- {{ msg }}
CSS 中添加
[v-cloak] {
display: none;
}
完整示例
v-once:{{msg2}}
{{msg3}}
- {{ msg }}
v-show
根据表达式之真假值,切换元素的 display CSS 属性。
v-show指令,等于true的时候显示,false的时候隐藏。
Vue
段落
段落1
v-if
根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 ,将提出它的内容作为条件块。
Vue
如果flag为true则显示,false不显示!
v-if和v-show的总结
v-if和v-show 都能够实现对一个元素的隐藏和显示操作,但是v-if是将这个元素添加或者移除到dom中,而v-show 是在这个元素上添加 style="display:none"和移除它来控制元素的显示和隐藏的
课堂练习
点击按钮,实现标签的显示、隐藏和切换
v-else
限制:前一兄弟元素必须有 v-if 或 v-else-if。
Vue
flag为true
flag为false
v-else-if
表示 v-if 的 “else if 块”。可以链式调用。
前一兄弟元素必须有 v-if 或 v-else-if。
Vue
{{msg}}
{{msg}}
{{msg}}
练习
{{msg}}
{{msg}}
other
优
良
中
及格
不及格
V-for
https://cn.vuejs.org/v2/api/#v-for
遍历:必须使用特定语法 alias in expression ,为当前遍历的元素提供别名:
{{ item.text }}
例1:数组和json
普通数组
- {{item}}
普通数组-获得索引
- {{index}}-------{{item}}
json对象
json-v1一个参数时获取值
- {{v1}}
json-vk两个参数时获取v,k
- {{v}}-{{k}}
json-vk三个参数时获取v,k,index
- {{index}}-{{v}}-{{k}}
json数组,读取时按数组读,只不过每次拿到的值是对象类型,想对象时要用 对象.属性 的方式
- {{user.name}}-----------{{user.age}}
例2:访问json中的数组
Document
- {{v}}
:key的作用
https://www.cnblogs.com/zhumingzhenhao/p/7688336.html
key的用法一般是:key='id',意思是为元素绑定一个key属性,这个key属性为元素添加了一个唯一身份标识符。
之后,当数据改变,Vue底层通过对比能够更快的获取到更新的内容并显示到页面上。
总之就是一句话,key属性能够提升性能(主要作用于数据更新时)。
手册上的描述:v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个 key 的特殊属性:
{{ item.text }}
课堂练习
动态加载商品列表
列表数据
goods: [{
src: 'images/1.jpg',
des: '这是第一个描述',
price: 198
},
{
src: 'images/2.jpg',
des: '这是第二个描述',
price: 198
},
{
src: 'images/3.jpg',
des: '这是第三个描述',
price: 211
},
{
src: 'images/1.jpg',
des: '这是第一个描述',
price: 198
},
{
src: 'images/3.jpg',
des: '这是第二个描述',
price: 112
},
{
src: 'images/3.jpg',
des: '这是第三个描述',
price: 423
}]
代码
-
{{item.src}}
{{item.des}}
{{item.price}}
显示效果
上面的显示效果不是太理想,我们希望图片是以图的形式,
不可以,需要用动态绑定属性V-bind
V-bind(属性控制|动态参数 )
动态地绑定一个或多个属性,或一个组件 prop 到表达式。
把上面图片部分改造成如下两种形式都可以
显示效果
相当于.attr .prop
1)直接控制属性
Document
2)控制css
Document
v-on 事件处理器(用于绑定鼠标或键盘事件)
参考:http://www.runoob.com/vue2/vue-events.html
注意看里面的按钮修饰符
绑定事件监听器。
...
...
1)直接执行语句
Vue 测试实例
这个按钮被点击了 {{ counter }} 次。
2)通常情况下,我们需要使用一个方法来调用 JavaScript 方法。
on指定事件与methods定义事件函数
Vue
练习:
点击按钮换图
3)除了直接绑定到一个方法,也可以用内联 JavaScript 语句:
Vue 测试实例 - 菜鸟教程(runoob.com)
更多参考:https://cn.vuejs.org/v2/api/#v-on
按钮修饰符(键盘事件)
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
注意:在 Mac 系统键盘上,meta 对应 command 键 (⌘)。在 Windows 系统键盘 meta 对应 Windows 徽标键 (⊞)。在 Sun 操作系统键盘上,meta 对应实心宝石键 (◆)。在其他特定键盘上,尤其在 MIT 和 Lisp 机器的键盘、以及其后继产品,比如 Knight 键盘、space-cadet 键盘,meta 被标记为“META”。在 Symbolics 键盘上,meta 被标记为“META”或者“Meta”。
小例子
v-model 双向绑定-变量的值根据输入的变化页变化(非常重要)
在表单控件或者组件上创建双向绑定。{{msg}}的值随着input输入值变化而变化
限制:
Document
{{msg}}
多行文本
Multiline message is:
{{ message }}
单个复选框,绑定到布尔值:
多个复选框,绑定到同一个数组:
应用,比如做批量删除,就可以用它生成id数组
Checked names: {{ checkedNames }}
单选按钮
Picked: {{ picked }}
学习练习 https://cn.vuejs.org/v2/guide/forms.html
下拉选择框(单选时)
Selected: {{ selected }}
下拉列表框(可多选)
multiple selected: []
Selected: {{ selected }}
用 v-for 渲染的动态选项:
Selected: {{ selected }}