- vue基础
- vue基础API_下半部分
- v-for指令
key
使用v-for的时候,需要提供一个key属性,且保证key唯一不可变,vue规定的
虚拟DOM概念
虚拟DOM可以提供更新的性能
虚拟DOM实质就是一个普通的js对象,保存DOM对象最关键的一些信息
如何工作
模板生成虚拟DOM
虚拟DOM生成真实的DOM
数据发生改变
生成新的虚拟DOM
对比新旧虚拟DOM
diff
根据新旧虚拟DOM的不同去更新真实的DOM
重绘
回流
如果根元素变了
直接删了重建
如果根元素没变但是属性变化
元素复用,修改属性
父元素不变,子元素发生变化
-
无 key
就地更新
根据下标,一个一个对比子元素的虚拟DOM
问题:如果子元素的顺序发生改变,性能不高
-
有key
根据key进行复用
子元素的顺序就算发生了改变,也没影响
v-bind对于样式增强
对于style和class,v-bind进行的增强,值不仅仅可以是字符串,还可以是对象和数组
品牌管理半成品——列表渲染功能
过滤器,与data同级
作用:对数据进行格式化,本质就是一个方法,把原来的变量值作为过滤器的实参进行传参,返回格式化后的值
使用
<p>{{msg | filterA}}</p>
<P :title="title | filterB">
定义过滤器及过滤器的分类
局部过滤器有多个,所以filter加s
filters: { 过滤器名字(input) { return ... } }
全局的过滤器只有一个
Vue.filter(‘过滤器的名字’, function(input) { return ...})
使用多个过滤器
{{ msg | filterA | filterB }}
过滤传参数
{{ msg | filterA(arg1) }}
filters: { filterA(input, arg1 = 0) {} }
完整品牌管理
计算属性
写在computed中的属性就叫计算属性, computed中的是需要经过逻辑运算的
注意点
1. 计算属性写在computed中
2. 计算属性写法上是一个函数或者是一个对象,在使用时是以变量的方式进行使用
3. 计算属性使用的时候不能加()
语法
获取
computed: { full() {return ...} }
获取且修改
computed: { get(){}, set(value){} }
缓存
计算属性只会计算一次,就会把结果存储起来,多次使用计算属性,只需要计算一次
如果依赖的属性发生了改变,计算属性会重新计算一次
侦听属性
需要监听某个属性是否发生改变,就需要使用watch
语法
简单类型
watch: { msg(value) {} }
复杂类型
watch: { friend: { deep: true, handler(){}, immediate: true} }
品牌管理完成