示例:
<template><div> <ul> <li v-for="value in obj" :key="value"> {{value}} </li> </ul> <button @click="addObjB">添加obj.b</button></div></template><script>export default{ data () { return { obj: { a: 'obj.a' } } }, methods: { addObjB () { this.obj.b = 'obj.b' console.log(this.obj) } }}</script><style></style>
点击button会发现, obj.b 已经成功添加,但是视图并未刷新:
QQ截图20190303154007.png
原因在于在Vue实例创建时, obj.b 并未声明,因此就没有被Vue转换为响应式的属性,自然就不会触发视图的更新,这时就需要使用Vue的全局api—— $set():
addObjB () { // this.obj.b = 'obj.b' this.$set(this.obj, 'b', 'obj.b') console.log(this.obj) }
$set() 方法相当于手动的去把 obj.b 处理成一个响应式的属性,此时视图也会跟着改变了:
QQ截图20190303154616.png
一、小程序对接视频号组件微信文档》组件》媒体组件1.channel-live 视频号直播组件 (注版本还在更新中,暂时不推荐使用)小程序内嵌视频号直播组件,展示视频号直播状态和封面,并无弹窗跳转至视频号。注意:使用该组件打开的视频号视频需要与小程序的主体一致。只有手机端可以使用,pc端目前不支持。官网地址:channel-live | 微信开放文档使用案例:/** * 生命周
java.util.ConcurrentModificationException 并发修改异常1.查看JDK APIpublic class ConcurrentModificationException extends RuntimeException该异常继承RuntimeException 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 例如,某个线程在 Collection