1.在哪个生命周期内调用异步请求?为什么?优点? 可以在钩子函数 created、beforeMount、mounted 中进行调用,(推荐使用created 钩子函数)原因:此时data 已经创建,可以将服务端返回的数据进行赋值 created 钩子函数中调用异步请求优点:能更快获取数据,减少加载 时间;有助于支持ssr 一致性2.computed 和 watch 的区别和运用的场景?区别:computed: 是计算属性,依赖其它属性值,值有缓存,依赖的属性值发生改变,下一次获取 computed 的值时才会重新计算 computed 的值; watch:「观察」的作用,类似于数据的监听回调 ,监听的数据变化时都会执行回调进行后续操作; 运用场景:当我们需要进行数值计算,并且依赖于其它数据时,应该使用 computed, 当我们需要在数据变化时执行异步或开销较大的操作时,应该使用 watch 3.Vue 模板编译原理Vue 的编译过程就是将 template 转化为 render 函数的过程,分为以下三步:第一步是将 模板字符串转换成 element ASTs(解析器)第二步是对 AST 进行静态节点标记,主要用来做虚拟 DOM 的渲染优化(优化器)第三步是 使用element ASTs 生成 render 函数代码字符串(代码生成器) 4.谈谈你对 keep-alive 的了解?keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,避免重新渲染 ,其有以下特性:一般结合路由和动态组件一起使用,用于缓存组件;提供 include 和 exclude 属性对应两个钩子函数 activated 和 deactivated 5.v-model 的原理? v-model 本质上不过是语法糖,v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:如:text 和 textarea 元素使用 value 属性和 input 事件; checkbox 和 radio 使用 checked 属性和 change 事件; select 字段将 value 作为 prop 并将 change 作为事件。
|