面试总结2-vue有关

diff算法你了解多少

diff算法是为了更新虚拟dom设计出来的算法,利用算法找出更新了dom树之后的最优解。减少了dom树的查找次数,降低时间复杂度。
它依据的是深度优先,同级比较的规则,如果当前父级有孩子节点,便会比较孩子。它会在里面生成4个指针,分别是一前一后,它们的比较方式是交叉对比的。一般来说,用户不会在中间插入节点,只会前后添加或者删除,比对完之后,一定有一个先结束,这时候需要把剩下的节点给挂上去。
如果添加了key之后,更方便节点是否相同的比较,所以添加key是非常有必要的。
必要性:因为每个组件一个watcher,需要知道哪里发生了变化,所以需要使用diff算法。

怎么理解vue组件化

1.组件化是软件编程技术里的一种重要的编程思想。它的优点是效率高,复用性高,容易测试。常用的组件有通用组件(element-ui),业务组件(登录,加入购物车等),页面组件。
2.就粒度角度分析,把相同的动态数据通过组件形式提取出来,在vue中是new watcher更新的dom比较更少,循环查找的也少了。
3.vue中使用组件一般是属性prop,和自定义事件传值,slot插槽等方式。
4.vue 定义组件方式:vue component ,template,render, 单文件组件的形式template ,
global/assets, initAssetRegisters component,filter,directive definition组件配置对象,用extend方法转化成构造函数。
5. 创建一个vueComponent类,继承于vue。Sub原型来自于sub原型的拷贝。把vue选项中和当前设置的选项进行合并。
6.以template为起始的编译成渲染函数,webpack用vue-loader会编译为render函数,最后导出的是组件配置对象。
7.组件化实现
组件的构造函数是通过extend生成,component方法注册,局部组件。

vue设计理念

vue是一个渐进式的js框架。
特点是易用性,灵活性,高效性。
对于一般的项目,只需要引入vue+vue-router就可以实现,如果需要用到vuex+axios再进行引入。
同时,它是一个mvvm框架,省去了C的操作,节省了代码,用户不用关注于控制器层。只需要专注于视图和模型层交互。

mvc mvp mvvm

都是软件的设计模式,很早之前没有前端,只有后端,jsp就是使用的mvc框架,因为之前的前端算比较简单,m是模型,用来存放数据,v是view视图,用来用户查阅,c是控制器,用来模型和视图的交互。但是v层和c层交互起来逻辑混乱。
这样写代码越来越复杂,可维护性太差,之后ajax技术出现,前后端开始分离,前端的逻辑越来越复杂,于是有了前端框架和设计模式。
后来有了mvp框架,p层就为了解决m层和v层的逻辑混乱,所有操作需要经过p层。导致p层过于臃肿。
之后就有了mvvm框架,model-view-viewmodel ,把p层经过特殊处理双向绑定,底层封装处理起来,让用户直接获取到数据改变之后v层瞬间响应。

vue优化

v-if放在v-for前面
减少重排重绘。
路由懒加载 import
图片v-lazy懒加载
组件化封装。提取公共代码,只更新公共部分。
活用v-show,不一定要用v-if
使用keep-alive,可以让返回的时候不动态加载created.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值