-
vue响应式原理
参考: https://www.cnblogs.com/fundebug/p/responsive-vue.html
Object.defineProperty实现
Vue通过设定对象属性setter/getter方法来监听数据的变化,通过getter进行依赖收集,
而每个setter方法就是一个观察者,在数据变更的时候通知订阅者更新视图. -
vue的生命周期
beforeCreate,created
beforeMount,mounted
beforeUpdate,updated
activated,deactivated
beforeDestory,destoryed
activated: 当页面重新显示的时候执行. 搭配keep-alive,localStorage和临时变量做页面性能优化.
deactivated: 当页面即将被隐藏或替换其他页面时执行. 可以用来解绑在activated上绑定的全局事件.
mounted: 是挂载vue实例后的钩子函数,钩子在主页挂载时执行一次. 如果没有缓存的话,再次回到主页时,此函数还会执行.
activated: 是组件被激活后的钩子函数,每次回到页面都会执行. -
vue $nextTick原理,事件机制
参考: https://www.jianshu.com/p/a7550c0e164f -
组件传值
参考: https://juejin.cn/post/6844903845642911752
var Event = new Vue()
Event.$ emit(事件名, 数据)
Event.$ on(事件名, data => { }) -
vuex
参考: https://vuex.vuejs.org/zh/ -
vue-router
参考: https://router.vuejs.org/zh/ -
computed 和 watch 的区别
计算属性computed:
(1) 支持缓存,只有依赖数据发生改变,才会重新进行计算.
(2) 不支持异步,当computed内有异步操作时无效,无法监听数据的变化.
(3) computed属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中声明过的数据通过计算得到的.
(4) 如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed.
(5) 如果computed属性属性值是函数,那么默认会走get方法; 函数的返回值就是属性的属性值; 在computed中的属性都会有一个get和一个set方法,当数据变化时调用set方法.
侦听属性watch:
(1) 不支持缓存,数据变,直接会触发相应的操作.
(2) watch支持异步.
(3) 监听的函数接受两个参数,第一个参数是最新的值,第二个参数是输入之前的值.
(4) 当一个属性发生变化时,需要执行对应的操作,一对多. -
v-if 和 v-show 的区别
v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐 -
开发中的跨域问题
参考: https://www.cnblogs.com/soyxiaobi/p/9616011.html -
promise
参考: https://blog.csdn.net/zhaoxiang66/article/details/81017373 -
数组去重
参考: https://www.cnblogs.com/zsp-1064239893/p/11196501.html -
深拷贝和浅拷贝
参考: https://www.jianshu.com/p/35d69cf24f1f
1.什么是发布订阅模式、观察者模式
参考: https://www.cnblogs.com/zhengrongbaba/p/15428176.html
2.如何理解vue2响应式原理
3.vuex的工作原理是什么
4.谈一谈nextTick的原理以及运行机制
5.聊聊keep-alive的实现原理和缓存策略
6.你阅读过axios的源码吗?axios主要有哪些特性?
7.vuex和redux比较,他们的相同点以及不同点?
8.在vue中如何通过createElement创建虚拟DOM?
9.在vue中如何通过vue、vue-router、vuex进行权限控制?
10.vue的数据驱动原理及如何实现?
11.vue的优点?