v-cloak
和样式[v-cloak]{display:none}
来解决app3.items.push({name:'music',price:12})
来添加数据,实时显示app4.obj.other='another'
来增加属性,而要通过Vue.set(app4.obj,'newKey','newValue')
来实现。因为Vue对有的属性变化检测不到
item[0].isShow = true
;
Vue.set(object, key, value)
的⽅式添加的属性
Vue.delete(object, Key)
的⽅式删除的属性
push()
pop()
shift()
unshift()
splice()
sort()
reverse()
filter()
concat()
slice()
items[indexOfItem] = newItem;
items.length = newLength;
app.dataSource.newKey = 'newValue';
测试拼接字符串:{{testTitle1Key+'-'+testTitle2Key}}
测试算术运算:{{testTitle4Key-testTitle3Key}}
测试对象(鼠标移到我上面看title值,跟Mustache渲染出来的不同):{{testObj}}
测试的象重写toString(鼠标移到我上面看title值,跟Mustache渲染出来的不同):{{testObj2}}
测试数组:{{testArr}}
测试数组重写toString(鼠标移到我上面看title值,跟Mustache渲染出来的不同):{{testArr2}}
测试方法:{{testMethod()}}
单行文本框的值为:{{testText}}
复选框的绑定值为:{{testCheckbox}}
单选按钮的绑定值为:{{testRadio}}
下拉框的绑定值为:{{testSelect}}
下拉框的绑定值为:{{testSelectMul}}
.lazy——后面的数据在执行change事件时改变(本例中失焦时可观察到):{{testLazy}}
.number——后面的数据自动转为Number类型(在控制台通过app7.testNumber查看,数字开头会去除后面的非数字,字母开头就是字符串):{{testNumber}}
.trim——后面的数据自动去除前后空格(貌似不写也只会保留前面一个空格和去除后面的空格):{{testTrim}}
直接绑定表达式 counter:{{counter}}
调用vue中自定义方法
方法传参,其中$event是原生事件对象,可在控制台中看到当前元素的路径
绑keyup事件 inputMsg:{{inputMsg}}
没有添加修饰符的情况
.stop
——阻止事件冒泡
.prevent
——阻止默认事件(光弹出不跳转)
.capture
——事件改为捕获模式(默认为冒泡)
.self
——只处理元素本身的事件,而不处理冒泡或捕获来的
.once
——事件触发一次后就被删除(修饰符绑在外层,包括被冒泡,可测试)
1~
2~
3~
.passive
——恢复浏览器事件默认行为,每次事件产生,浏览器都会去查询一下是否有preventDefault阻止该次事件的默认动作。
我们加上passive就是为了告诉浏览器,不用查询了,我们没用preventDefault阻止默认动作。一般用在滚动监听,@scoll,@touchmove 。
因为滚动监听过程中,移动每个像素都会产生一次事件,每次都使用内核线程查询prevent会使滑动卡顿。我们通过passive将内核线程查询跳过,可以大大提升滑动的流畅度。
注意不能和prevent一起用,因为后者会被忽略。
.prevent.self
——阻止了传播a的默认行为和事件,可以理解为先阻止默认跳转后再过滤掉传播来的。
.self.prevent
——只阻止了a的点击事件,可以理解为把自身(self)的默认行为(prevent)阻止,而通过传播来的事件会触发默认动作跳转。