一、v-html
<div><div v-html="msg"></div></div><script>var vm = new Vue({el:"#app",data:{msg:"<h1>hello world</h1>"}})</script>
二、v-once
只渲染一次,不重新更新视图。
三、v-if v-else-if v-else
四、v-show
如果频繁的去切换DOM使用v-show
五、v-for
六、key的作用为了区分元素
key就是为了给DOM元素一个唯一的标识符
<body><div id="app"><div v-if="flag"><span>网易云音乐</span><input type="text"></div><div v-else><span>qq音乐</span><input type="text"></div></div><script>var vm = new Vue({el:"#app",data:{flag:true}})</script></body>
不加key,input输入框qq的值改变,网易云的输入框应该是没变的切换过去,还是qq的输入框。

解决方案 添加key
<div id="app"><div v-if="flag"><span>网易云音乐</span><input type="text" key="wangyi"></div><div v-else><span>qq音乐</span><input type="text" key="qq"></div></div>
6-1 for-key
<body><div id="app"><p v-for="(item,index) of arr"><input type="checkbox">{{item.id}} {{item.name}}</p></div><script>var vm = new Vue({el:"#app",data:{arr:[{id:1,name:"小米"},{id:2,name:"苹果"},{id:3,name:"华为"},]}})</script></body>
不使用key,使用unshift方法添加数组,勾选checkbox会出问题。
我选中的是苹果,结果变为小米。因为这里没有添加key,默认选中的是第二个,重新渲染还是第二元素被选中。
七、filters
类似于小程序的中wxs
<div id="app">{{msg | format}}</div><script>var vm = new Vue({el:"#app",data:{msg:"99"},filters:{format(value){return "$"+value}}})</script>
7-1 filters传参
<div id="app">{{msg | format("好的")}}</div><script>var vm = new Vue({el:"#app",data:{msg:"99"},filters:{//value是mgs add是format传递过来的参数format(value,add){return "$"+value+add}}})</script>
