VUE

1.使用过css预处理么?喜欢哪个?

less的优点 与sass的区别
结构清晰,便于扩展。
可以方便地屏蔽浏览器私有语法差异。
可以轻松实现多重继承。
完全兼容 CSS 代码,可以方便地应用到老项目中。

less主要是为了模块化迭代速度快
sass是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护
sass里封装了好多方法,可以直接拿去作为微型js来用

2.vue生命周期

生命周期钩子详细
beforeCreate在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
created实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。
beforeMount在挂载开始之前被调用:相关的 render 函数首次被调用。
mountedel 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。
beforeUpdate数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。
updated由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。
activatedkeep-alive 组件激活时调用。
deactivatedkeep-alive 组件停用时调用。
beforeDestroy实例销毁之前调用。在这一步,实例仍然完全可用。
destroyedVue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

3.vue虚拟dom实现方法

为什么使用虚拟dom:

因为dom很慢,元素非常庞大,如果直接对dom进行操作复杂度高,兼容度差。各种MVVM双向数据绑定框架为我们解决了这一问题。但如果有复杂的场景下,过多的时间绑定会影响性能,虚拟dom可以改善这一点。运用虚拟dom既可以提高开发效率,又可以最小化dom操作,提高执行效率。

虚拟dom实现:

由于dom引擎处理较慢,js引擎处理较快,所以用js引擎来虚拟创建所有节点最后再render出来效率更高,并且在渲染之前先用diff方法再虚拟dom中计算出真实dom所需要的最小修改量,最后再对真实dom进行修改,以此达到效率最大化。

4.vue双向数据绑定

脏值检查,发布者-订阅者模式,数据劫持

脏值检测是angular.js使用的,会在指定事件触发之后进入脏值检测,检测数据是否变动

发布者-订阅者模式会给通过sub和pub给数据和视图绑定监听,用vm.set('property',value)

vue.js是结合发布者-订阅者模式还有数据劫持,通过defineProperty来劫持属性的setter和getter,在数据变动的时候发布消息给订阅者来触发相应地回调函数。

实现observer->实现compile->实现watcher->实现MVVM

observer中用defineProperty来监听属性变动,对数据进行深度递归遍历,所有对象的属性都加上setter和getter,这样对象中的任何属性改变都会触发setter属性,我们就监听到了数据变化。

compile用于解析模版指令,将模版中的属性替换成数据,然后初始化渲染视图,并添加监听数据的订阅者。

watchercompileobserver中间的媒介,在自身实例化的时候向dep(订阅者)中添加自己,并在watcher中添加一个update()函数,当属性变动dep.notice()触发的时候,调用自身update()属性,触发compile()总绑定的回调。

实现MVVM是整合了三者,挟持了vm实例化对象的读写权,通过observer来监听modal变化,通过compile来解析编译模版指令,在用watcher作为桥梁连接两者来实现,数据变化->视图更新,视图交互变化(input)->数据modal更新

5.http协议,无状态

https://www.cnblogs.com/ranyonsue/p/5984001.html

6.网络,cros如何实现跨域

7.原型,作用域链

8.虚拟dom的diff原理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值