1、jquery和框架的区别
1) 数据和视图分离,解耦
2) 以数据驱动视图,只关心数据变化,dom操作被封装
2、说一下对MVVM理解
1) MVC model、view、controller
2) MVVM
var vm = {};
var data = {
name: 'shanpao',
age: 20
}
var key,value
for(key in data){
(function(key){
Object.defineProperty(vm,key,{
get: function(){
console.log('------监听')
return data[key];
},
set: function(newVal){
console.log('------监听')
data[key] = newVal;
}
})
})(key)
}
4、vdom为什么使用diff算法
1)dom操作昂贵,尽量减少dom操作
2)找出本次dom必须的更新的节点
3)‘找出’的过程需要diff算法
5、vue如何实现响应式
1)重点理解Object.defineProperty
2) 如何将data的属性代理到vm上的
6、vue如何解析模板
1)模板本质字符串,但是有逻辑和变量
2)模板必须转换为js代码(render函数)
3)render函数执行返回vnode
4)updateComponent(patch函数)
7、vue整体实现流程
1)解析模板成render函数
2)响应式开始监听
3)首次渲染,显示页面,绑定依赖
4)data属性变化触发rerender
8、组件化的理解
1)组件的封装(视图、数据、变化逻辑外界均不需要知道)
2)组件的复用 (props传递、复用)
9、JSX本质
JSX语法,其实是语法糖
开发环境会将JSX编译成JS代码
一种标准
10、setState为何需要异步
1)可能一次执行多个setState
2)你无法限制规定用户如何使用setState
3)没必要每次更新都重新渲染dom,考虑页面性能
11、react和vue对比
1)本质区别vue本质是(mvvm框架,由mvc发展而来)react本质是前端组件化框架,由后端组件化发展而来
2)模板区别vue使用模板 react使用JSX(模板和js未分离)
3)组件化的区别react本身就是组件化的vue也支持组件化但是是在mvvm上的扩展
共同点:
1)都支持组件化
2)都是数据驱动视图
vue文档易读,易学,社区庞大。react组件化和jsx