v-if与v-show的区别以及使用

v-if与v-show都可以实现元素在页面的显示与隐藏

v-if是直接将元素在dom树上删除与添加,所以一般会更消耗性能,而v-show是设置元素的display:none,因而v-show适合频繁操作的元素。

computed与watch的区别

computed是依赖其他值来计算得到一个值,watch是监听某一个值的变化,然后进行一系列的操作

v-if与v-for为什么不能一起使用

因为v-for的渲染高于v-if

vue2.0数据响应的原理

利用object.defineProperty以及订阅者-发布者模式

利用object.defineProperty进行数据劫持,同时初始化之后进行模板编译,将data对象的数据拿出来展示到页面上。并且数据初始化时触发了object.defineProperty中的getter方法,将每个属性特有的watcher添加到订阅器Dep中,而当数据有变化时,就会相应触发setter方法,Dep订阅器就会去通知属性对应的watcher从来调用相应的update函数,从而实现页面的更新。

mvvm

model-view view-model 增加了view-model层,初始化将model层绑定到view中,在view-model对数据进行修改,无需再手动去修改dom,数据会自动更新到视图层。

虚拟dom

vue中有一棵虚拟dom树,当数据改变时,操作的是虚拟dom,然后将操作的那块虚拟dom去替换真实的dom树,减少对dom操作

Vue.mixin  

将各个组件中相同的变量、方法、函数等都提炼到mixin文件中,与vuex不同的是两者不会相互影响,都是独立的。相同的函数,如created,当在组件引入后,组件内的与mixin都会执行,mixin内的优先于组件内的;相同的方法的话,组件内的会替代mixin内的理解Vue.mixin,利用Vue.mixin正确的偷懒 - 有梦想的咸鱼前端 - 博客园

$set

vue实例创建完成之后,再给对象添加新的属性或者删除属性,都是没有监听,不会响应式的挂载到页面上

数组通过下标修改数组或者获取数组的长度都是无法被监听

以上这两种办法都需要使用$set

history与hash

视觉上hash加上了一个#,hash利用的是onhashchange 事件,直接将页面状态与url关联起来,整个行为都是自主发生在前端的;而history在刷新的时候是实实在在的去请求后端的,如果后端没有配置的话,就会返回404了。

vue的性能优化

1。区分使用v-if与v-show

2.避免v-for与v-if的使用,v-for加key值

3.路由懒加载,图片懒加载

4.对象不要嵌套太深

5.第三方组件、插件的按需引入

6.适当使用keep-alive

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值