1.v-show 和 v-if 区别 答:v-show隐藏则是为该元素添加css--display:none,dom元素依旧还在。v-if显示隐藏是将dom元素整个添加或删除
2.v-for 中key的作用 答: 1. 提升v-for渲染的效率 2. 提高渲染性能 3.避免数据混乱的情况出现
3.vue中data为什么是function 答:组件根据业务需要,可以被使用多次,function会使得每次组件使用的时候都亲自执行,并给当前应用分配一个独立的数据对象,这样多个组件的data数据是独立的,互相没有关联、牵扯,互相不会覆盖。如果直接通过{}对象 给data赋值,多次使用组件会造成组件之间的data都是共享的,就是一份数据,一个组件修改data后,其他组件都受到影响,这与业务逻辑是相违背的。 4.vue中双向绑定的原理
5.keep-alive的作⽤和被keep-alive声明的组件的⽣命周期
答 keep-alive的作⽤主要用于保留组件状态或避免重新渲染
在被keep-alive包含的组件/路由中,会多出两个生命周期的钩子:activated与deactivated。
6.说一下vue的生命周期,以及生命周期都做了什么事情? beforeCreate :创建一个空白的实例,data method 尚未初始化,不可使用 created:Vue 实例初始化完成,完成响应式绑定,data method 可以调用,模板尚未渲染 beforemount:编译模板,调用render 生成vdom,只是在js层面,未转化成DOM mounted:完成dom 渲染,组件创建完成,创建阶段进入运行阶段 beforeUpdate:data发生变化,准备更新dom(尚未更新) updated: data 发生变化,且DOM更新完成,再这里更新数据可能会死循环 beforeUnmount:组件进入销毁阶段,解除全局事件 自定义事件 unmounted:组件被销毁
7.vue什么时候操作DOM 比较合适?操作时发现有的组件获取不到,怎么办? 答 vue中的ref是把当前dom元素 “ 抽离出来 ” ,只要通过 this.$refs就可以获取到(注意this指向),此方法尤其适用于父元素需要操作子组件的dom元素,这也是子传父传递数据的一种方法
8.发送网络请求在哪个函数中?
答 传统的Ajax
缺点:配置和调用方式等非常混乱
- jQuery-Ajax缺点:在Vue整个开发中都是不需要使用jQuery的
- axios
9.vue组件间传值有哪些⽅式
答 props父传子
on子传父
兄弟之间
10.vue中改变数组内索引的值,数据不更新,如何处理
1.由于javascript的限制,某些情况vue会监听不到数组的变化,例如: items[index] = newitem
- index 数组下标 可能要加key
3.需要修改的值
例子:
var list = [{name:"小米"},{name:“华为”}];this.$set(list,0,{name:"vivo"});
11.讲一下vuex
vuex主要应用于Vue.js中管理数据状态的一个库,通过创建一个集中的数据存储,供程序中所有的组件访问;
优势主要就是可以全局共享数据,方法。方便统一管理
劣势的话,页面刷新后state的变量都会还原清空,不会像cookies一样持久性存储
\