vue

说一说SPA

就是单页面应用,页面内容不随用户的行为而变化,通常是经过路由的切换致使页面内容发生改变!vue

谈一下你理解的vue

主要有两点: 数据驱动视图、 组件化vuex

而后就是MVVM模式,区别于传统的MVC模式数组

MVVM模式dom

M: model 模型数据层 主要负责数据哪一起ide

V: view 视图UI层 主要负责UI交互哪一起函数

VM: Model_view 数据响应层,打通Model与view,是桥梁组件化

Vue生命周期post

beforeCreate 建立前 组件还未生成,属性也未生效
created 建立后 组件初始化完成,属性生效,真是dom还未生成
beforeMounte 挂载前 reader函数首次加载
mounted 挂载后 el 被新建立的 vm.$el 替换,并挂载到实例上去以后调用该钩子
beforeUpdate 更新前 组件数据更新以前调用,发生在虚拟 DOM 打补丁以前
updated 更新后
beforeDestroy 销毁前
destroyed 销毁后this

VUE响应式插件

v-model 双向绑定实现响应式(组件data 的数据一旦变化,马上触发视图的更新)

Vue2.0对于响应式数据的实现有一些不足:

  • 没法检测数组/对象的新增
  • 没法检测经过索引改变数组的操做

解决:

  • Vue.set()方法 //针对第一个问题
  • Vue3.0采用Proxy替代了Object.definePropert 由于Object.DefineProperty的缺点,vue3 启用proxy

那么Object.definePropert的缺点是:
一、深度监听,须要一次性递归到底,一次性计算量大
二、新增和删除属性监听不到,须要Vue.set() 和 Vue.delete()
三、没法原生监听数组,须要特殊处理

VUE高级特性

  • 见总结思惟导图

说一下你对Vuex的理解

uex 是一个专为 Vue.js 应用程序开发的状态管理插件。它采用集中式存储管理应用的全部组件的状态,而更改状态的惟一方法是提交mutation,例this.$store.commit('SET_VIDEO_PAUSE', video_pauseSET_VIDEO_PAUSE为mutations属性中定义的方法 。

Vuex解决了什么问题?

解决两个问题

  • 多个组件依赖于同一状态时,对于多层嵌套的组件的传参将会很是繁琐,而且对于兄弟组件间的状态传递无能为力。
  • 来自不一样组件的行为须要变动同一状态。以往采用父子组件直接引用或者经过事件来变动和同步状态的多份拷贝。以上的这些模式很是脆弱,一般会致使没法维护的代码。

参考文章:vuex其余问题集合

相关文章
相关标签/搜索