1. vue中的虚拟dom
虚拟dom的思想:对复杂的文档DOM结构,进行最小化地DOM操作。虚拟DOM相当于在js和真实DOM中间添加了缓存,利用diff算法避免了没有必要的dom操作,从而提高了性能。
具体实现
2. 双向绑定原理
vue使用ES5提供的Object.defineProperty()方法
angular采用脏值检查
3. vue生命周期的理解
4. axios的特点
5. axios的常用方法
// get请求用于列表和信息的查询
axios.get(url[, config])
// delete删除
axios.delete(url,[, config])
// post请求用于信息的添加
axios.post(url[, data[, config]])
// 更新操作
axios.put(url,[,data[, config]])
6. vuex是什么?如何使用?使用场景
vue框架中的状态管理
使用场景:单页面应用中,组件之间的状态。音乐播放、登录状态、加入购物车等
可以用来在兄弟组件之间传值
var myStore = new Vuex.Store()
state:{
// 保存了组件之间 的公共状态
// 在组件中获得this.$store.state.name,一般放在computed属性中
},
mutations:{
// 这里的方法是同步的
// 显示的更改state中的数据,只有在mutateions中可以修改state中的数据,方法在各个组件之间是公共的
// this.$store.commit('方法名' ,参数)
},
getters:{
// 获得数据的方法,一般用来对数据进行筛选
// this.$store.gette.r('方法名',参数)
},
actions:{
// 处理异步的问题,这里不能直接改变状态,需要提交给mutattions让他提交
add:function(context,value){
setTimeout(function(){
context.commit('changeNum','参数')
})
}
// 在组件中派发事件,派发的是actions中的事件,
// action中的函数被触发,执行提交commit到mutation进行 执行
// 在组件中派发事件
changeNum:function(){
this.$store.dispatch('add',5)
}
}
7. 导航钩子有哪些
导航表示 路由正在发生改变
vue-router提供的导航守卫主要用来通过跳转或者取消的方式守卫导航.
参数或者查询的改变不会触发进入/离开导航守卫,可以通过观察$route对象或者使用beforeRouteUpdate的组件内守卫
完整的导航解析流程
全局钩子
// 点击导航前调用
router.beforeEach((to, from, next)=>{
})
// 点击导航后调用
router.afterEach(route=>{})
当一个导航触发时,全局的 before 钩子按照创建顺序调用。钩子是异步解析执行,此时导航在所有钩子 resolve 完之前一直处于 等待中。
每个钩子方法接收三个参数:
to: Route: 即将要进入的目标 路由对象
from: Route: 当前导航正要离开的路由
next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。
单个路由独享的钩子
在配置路由上直接的定义
routes:[
{
path:'foo',
beforeEnter:(to,from,next) =>{
},
afterEnter:(route)=>{
}
}
]
组件内的钩子
beforeRouteEnter (to, from, next) {
// 在渲染该组件的对应路由被 confirm 前调用
// 不!能!获取组件实例 `this`
// 因为当钩子执行前,组件实例还没被创建
},
beforeRouteUpdate (to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
// 可以访问组件实例 `this`
},
beforeRouteLeave (to, from, next) {
// 导航离开该组件的对应路由时调用
// 可以访问组件实例 `this`
}
8. 封装vue组件的过程
使用Vue.extend方法创建一个组件,在Vue.component方法注册组件
9. vue.js的template模板编译
先转换为AST树,再得到render函数返回VNode(vue的虚拟DOM节点)
10.哪些项目适合vue框架
11.vuex的属性
12.vuex的问题
12.keep-alive