vue笔记(一)

一、 v-cloak 的用法

<div v-cloak>
  {{ message }}
</div>
//css
[v-cloak] {
  display: none!important;   //添加 !important防止被优先级别高的样式覆盖
}

应用场景:
① 防止页面加载时出现 vue 的变量名
② v-html 可以解析html语句,但是可能遭到xss攻击

二、视图不更新情况

1.Vue 不能检测以下变动的数组:
① 当你利用索引直接设置一个项时,vm.items[index] = newValue
② 当你修改数组的长度时,例如: vm.items.length = newLength

2.不能检测到对象属性的添加或删除。属性必须在 data 对象上存在才能实现响应
解决办法:
①this.$set(this.myObject,‘a’,1)或Vue.set(this.myObject,‘a’,1)
②this.myObject=Object.assign({},this.myObject,{‘a’:1}),这时对象重新赋值,vue给每个属性都加上set和get,实现响应式
// 注:Object.assign(this.myObject, { a: 1})这种不会响应,第一个是返回的值,也就是说对象的指针没有发生变化
3.异步更新队列
解决mounted时,DOM没有完全渲染完的时间差(16ms)
Vue.nextTick(callback)

不需要双向绑定的实现方式:
1.不双向绑定、不渲染视图的不放进data,在created中用this.xxx即可。
2.Object.freeze() //冻结对象,不能向这个对象进行属性增删改查等
3. v-once:这个将不会改变: {{ msg }} //只渲染元素和组件一次,随后的渲染,都会当作静态内容并跳过

三、加key(一定要具有唯一性)场景

使用场景:
1.v-for的时候要加key
2.同一组件切换,想要重新走一遍钩子函数
3.触发过渡。加入key有过渡效果

四、@hook:监听子组件生命周期加载完成

<hello @hook:mounted="kk" @hook:created="qq"></hello>

五、 透传

this. a t t r s 是 没 有 写 在 p r o p s 里 的 其 他 绑 定 。 可 以 通 过 v − b i n d = " attrs是没有写在props里的其他绑定。 可以通过v-bind=" attrspropsvbind="attrs"传入内部组件
this. l i s t e n e r s 是 没 有 用 . n a t i v e 的 其 他 监 听 。 可 以 通 过 v − o n = " listeners是没有用.native的其他监听。可以通过v-on=" listeners.nativevon="listeners"传入内部组件
vuex(麻烦,不要啥啥都写vuex里)、
vue Bus(难定位问题)
provide&inject也可以实现祖宗辈的传值,但是inject进来的值watch不到变化,如果需要响应式就不能用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值