vue面试
1、vue优点
答:vue轻量级框架,只关注视图层,易于理解学习;双向数据绑定,数据操作方面简单;
组件化操作,保留 react 的优点,实现了 html 的封装和重用;
采用虚拟 DOM 操作,dom 操作非常耗性能,不使用原生的 dom 操作节点,运行速度更快,相比 react 就性能,vue 优势很大
2、vue 父组件传递数据
答:通过 props ;
3、子组件向父组件传递事件
答:$emit("事件",值) 方法触发;
4、兄弟组件之间传值
答:组件 A 通过 $emit("事件","值") 传递;
组件 B 通过 this.$on("事件","message" =>{do somsing});
这样 A 组件就可以将数据传递给 B 兄弟组件
5、v-show 和 v-if 指令不同点和相同点
答:相同点是都可以控制元素的隐藏和显示
不同点是本质方法不同,v-show 是通过控制 css 中的 display 设置为 none 控制隐藏,只会编译一次;
v-if 是动态想DOM 树中添加元素或者删除 DOM 元素,若初始值是 false ,就不会编译,且v-if 经常创建和销毁比较消耗性能;
建议:频繁切换某个节点,建议使用 v-show ,初始化渲染某节点建议使用 v-if ;
6、css 样式只在当前组件中起作用
答: 在样式<style> 标签中增加 scoped 例<style scoped></style>;
7、获取 dom
答:组件的 属性 ref="DOM" domName = this.$refs.DOM ;
8、vue 中常用的指令
答:v-model 双向绑定数据;
v-for 循环;
v-if 、v-show 隐藏于显示;
v-on 绑定事件;
v-onve 只绑定一次;
9、标签中 key 的作用
答:vue 中需要 key 来给每个节点做唯一标识, diff 算法就可以正确识别此节点,主要为了高效更新虚拟 dom ;
10、axios
答:后台资源请求模块;npm install axios --save 模块安装;
通过 import axios from 'axios' 引入;
export const getRole = (params) =>{ axios.get('/api/addRole',{params}) .then(res =>{ console.log('成功:',res)}) .catch(e =>{console.log("败:",e)})}
11、vue 生命周期
答:1、beforeCreate 和 created