v-show 与 v-if 的区别?
v-show指令是通过修改元素的display的CSS属性让其显示或者隐藏;v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果;- 使用
v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。
组件之间的传值?
- 父组件通过标签上
:data=data方式定义传值 - 子组件通过
props方法接受数据 - 子组件通过
$emit方法传递参数
vue 优点?
-
低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
-
可重用性。可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
-
独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
-
可测试。界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
列举出3个 Vue 中常用的生命周期钩子函数
-
created: 实例创建完成之后调用,在这一步,实例已经完成数据观测、 属性和方法的运算、watch/event事件回调。然而,挂载阶段还没有开始, $el属性目前还不可见。
-
mounted: el被新创建的 vm.el 也在文档内。
-
activated: keep-alive组件激活时调用。
scss 是什么?在 vue.cli 中的安装使用步骤?有哪几大特性?
css的预编译语言。
使用步骤:
第一步:先装css-loader、node-loader、sass-loader等加载器模块;
第二步:在build目录找到webpack.base.config.js,在extends属性中加一个拓展.scss;
第三步:在同一个文件,配置一个module属性;
第四步:然后在组件的style标签加上lang属性 ,例如:lang=”scss”;
特性:
可以用变量,例如($变量名称=值);
可以用混合器;
可以嵌套;
页面渲染为什么使用 key?
当有相同标签名的元素切换时,为避免渲染问题,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容。
为什么避免 v-if 和 v-for 一起用?
当 Vue 处理指令时,v-for 比 v-if 具有更高的优先级,通过v-if 移动到容器元素,不会再重复遍历列表中的每个值。取而代之的是,只检查它一次,且不会在 v-if 为否的时候运算 v-for。