==== 条件渲染 ====
(1)v-if:默认判断某变量是true还是false 也可以判断某变量的值是否是'a','b'等任意东西,只要符合条件就会渲染
(2)v-else-if、v-else:需要和v-if紧贴在一起才会生效
(3)v-show:和v-if差不多,唯一的区别是,v-show不符合条件时,DOM还是存在的,只是隐藏起来了,v-if则是完全没有这个DOM节点,符合条件才生成,所以v-if性能更好
一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
(4)key值:DOM中都可以设置key值,主要是为了不让Vue尝试复用这个DOM节点,Vue见到相似的节点会尝试复用,如果设置了不同key值,表明这两个节点不同不会尝试复用
==== 列表渲染 ====
相对for-in,for-of性能好点,效果一样。给每一个循环项上加一个【唯一的】key值,可以提高性能
---- 遍历数组(第二个值是索引,位置不能换) ----
---- 遍历对象(第一个值是属性值 第二个是属性名 顺序不能换)----
---- template -----
当多个标签都需要使用循环时,可以用template(template只是一个占位符,不会被渲染到页面上)把它们包裹起来,把循环写到最外层的template里。
---- 改变数组内容 ----
通过数组的索引值(list [ 4 ])修改,数据会改变,但是页面不会重新渲染,需要使用数组的方法操作
(1)push(给最后添加)、pop(删除最后一项)、shift(删除第一项)、unshift(给开头添加)、splice(截取)、sort(排序)、reverse(取反)
(2)另外一种方法:改变引用,直接整个数组重新编辑,vm.list=[{...},{...},{...}](不推荐)
---- 改变对象内容 ----
改变对象原有的属性值,页面上渲染的结果会跟着变。但是直接增加新的键值对,数据会发生改变,但是页面上的内容不会变。
解决方法:整个对象重新编辑,添加上要加的键值对(不推荐)
---- set方法 ----
在对象中:可以添加新的键值对,并且页面会更新数据
(1)Vue.set(vm.userInfo,“age”,“18”)这是全局的Vue的set方法,找到要设置的实例里面的对象==》vm.userInfo,然后跟“属性名”,“属性值”,中间用逗号隔开
(2)vm.$set(vm.userInfo,“age”,“18”)这是实例对象上的实例set方法,用实例对象.$set调用方法,其他一样
在数组中:可以设置内容,页面会实时更新,和对象一样调用