🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 1. 熟练使用Vue的API、生命周期、钩子函数 #### 2. MVVM框架设计理念 1. 传统MVC构架:分为视图层( 面向用户 )、控制层( 面向视图与数据 )、数据层( 面向程序 ) 2. 视图层发生了变更,需要控制层去通过数据层,数据层再反馈到视图层 3. 控制层发生了变更,控制层通过数据层,数据层再反馈到视图层 1. M(数据模型) V( 视图 ) VM( vue帮我们实现了视图与数据模型的双向通信,不需要手动去操作DOM ) 2. MVVM模型帮我们解决了视图与模型之间的通信和控制,大大提高了开发效率,而且还不需要操作DOM,更新效率更高,这都是Vue帮我们做了实现 #### 3. Vue双向绑定实现原理、Diff算法的内部实现 1. Vue通过Object.definedProperty来实现双向绑定 2. 通过getter进行依赖收集,通过setter进行观察,在数据变量的时候通知订阅者更新视图 3. Diff内部实现:是把真实DOM结构以JS对象抽象成一棵语法树( AST ),用属性来描绘DOM树,当对DOM操作增删改之类的操作时,实际只操作这个JS语法树就行,当变更时,Vue通过diff算法去对比新老节点,实现最小更新,减少DOM操作,大大提高性能 #### 4. Vue事件机制 1. $on:添加自定义事件,由$emit触发 2. $emit:用来触发自定义事件 3. $off:解绑自定义事件 4. $once:监听只能触发一次的事件,触发后销毁这个自定义事件 #### 5. 从template转换成真实DOM的实现机制 1. 将template模板解析成为AST抽象语法树 2. 最后将解析好的AST语法树转换为render函数 #### 6. 对于编写前端通用组件的思考 1. 组件单一职责,单个组件负责单个功能,但单一职责是建立在可利用的基础之上,也不能封装得过于细粒,具体场景具体考虑 2. 封装基本功能,每个操作反馈对应的数据接口暴露给调用者 3. 内部接收属性使用对象类型,保障数据格式质量 #### Vue&WebPack工程中解决跨域问题的三种方式 1. 使用webpack-dev-server的proxy功能由webpack服务端帮我们转发 2. 前端自己模拟数据,使用before(app),使用express定义接口 3. 在服务端中启动webpack,使用服务端的接口