vue面试技巧(还在编译中)

129 阅读1分钟

1、vue是采用数据劫持配合发布者-订阅者模式的方式,通过Object.definerProperty()来劫持各个属性的setter和getter,在数据变动时,发布消息给依赖收集器,去通知观察者更新(做出对应的回调,更新视图)。

2、MVVM作为绑定入口,整合了Observe类,Compile类和Watcher三者,通过Observe来监听model数据变化表,通过Compile类来解析编译模板指令,最终利用Watcher搭起Observe,Compile之间的通信桥梁,达到数据变化=》视图更新,视图交换变化=》数据model变更的双向绑定效果

3、防抖:事件响应函数一段时间后执行,如果在这段时间内再次调用,则重新计算执行事件。当预定时间内没有再次调用该函数,则执行当前的方法

//debound 防抖
function debounce(func,wait){
	let	timeout;
	return function(){
        let _this = this
        let args = arguments;
		clearTimeout(timeout);
		timeout = setTimeout(()=>{
            func.apply(_this,args)
        },wait)
	}
}