vue 必知面试题

作者: 空无一码 | 来源:发表于2018-10-26 18:54 被阅读11次

vue 必知面试题

css 相关

1 如何让CSS只在当前组件中起作用?

在当前组件的style中加入scoped:<style scoped>,scoped 有限制在某范围的含义,如果不设置,容易引起样式错乱!

2 vue项目如何适配移动端?

一般会引入淘宝移动端布局库amfe-flexible,不过由于viewport单位得到众多浏览器的兼容,该库维护团队建议使用viewport来替代此方案。但使用viewport也需要解决兼容问题。

vue 核心库

3 v-if和v-show的异同?

  • v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果
  • v-show指令是通过修改元素的displayCSS属性让其显示或者隐藏

4 组件之间的如何传值?

  • 父组件与子组件传值
    • 父组件通过标签上面定义传值
    • 子组件通过props方法接受数据
  • 子组件向父组件传递数据
    • 子组件通过$emit方法传递参数

5 页面如何跳转?

  • 声明式(标签跳转)
  • 编程式(借助vue-router)

6 vue-cli中怎样使用自定义的组件?

  • 在components目录新建你的组件文件;
  • 在需要用的页面(组件)中导入;
  • 注入到vue的组件的components属性上面;
  • 在template视图view中使用。

请列谈谈Vue生命周期钩子函数?

  • vue 实例从创建到销毁的过程,就是生命周期;
  • 创建前/后: 在beforeCreate阶段,vue实例的挂载元素el和数据对象data都为undefined,还未初始化。在created阶段,vue实例的数据对象data有了,el还没有;
  • 载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染;
  • 更新前/后:当data变化时,会触发beforeUpdate和updated方法;
  • 销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在;
  • vue生命周期中的事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。

谈谈 keep-alive?

<keep-alive></keep-alive> 包裹动态组件时,会缓存不活动的组件实例, 主要用于保留组件状态或避免重新渲染,在activated生命周期函数可以做相应处理。

在vue中如何使用插件?

  • 采用ES6的import ... from ...语法或CommonJSd的require()方法引入插件;
  • 使用全局方法Vue.use( plugin )使用插件,可以传入一个选项对象Vue.use(MyPlugin, { someOption: true });

为什么使用key?

当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容。

为什么避免 v-if 和 v-for 用在一起?

当 Vue 处理指令时,v-for 比 v-if 具有更高的优先级,这意味着 v-if 将分别重复运行于每个 v-for 循环中。通过v-if 移动到容器元素,不会再重复遍历列表中的每个值。取而代之的是,我们只检查它一次,且不会在 v-if 为否的时候运算 v-for。

状态管理库vuex

怎么使用vuex?

  • 在src下新建一个目录vuex;
  • 如果不用模块功能的话,在vuex下创建一个index.js文件;
  • 然后引入vuex, 创建相关的state,actions,getters, mutations并导出;
  • 在main.js中引入vuex并注入vue实例。

vuex的State特性

  • vuex就是一个仓库,仓库里面放了很多对象。其中state就是数据源存放地,对应于一般Vue对象里面的data;
  • state里面存放的数据是响应式的,Vue组件从store中读取数据,若是store中的数据发生改变,依赖这个数据的组件也会发生更新;
  • 它通过mapState把全局的 state 和 getters 映射到当前组件的 computed 计算属性中;

vuex的Getter特性

  • getters 可以对State进行计算操作,它就是Store的计算属性
  • 虽然在组件内也可以做计算属性,但是getters 可以在多组件之间复用
  • 如果一个状态只在一个组件内使用,是可以不用getters

不用vuex会带来什么问题?

  • 可维护性会下降,想修改数据要维护三个地方;
  • 可读性会下降,因为一个组件里的数据,根本就看不出来是从哪来的;
  • 增加耦合,大量的上传派发,会让耦合性大大增加,本来Vue用Component就是为了减少耦合,现在这么用,和组件化的初衷相背;

其他

怎么定义vue-router的动态路由以及如何获取传过来的动态参数?

  • 在router目录下的index.js文件中,对path属性加上/:id。
  • 使用router对象的params.id。

vue-loader是什么?使用它的用途有哪些?

  • 根据官网的定义,vue-loader 是 webpack 的一个 loader,用于处理 .vue 文件。
  • 使用vue-cli脚手架,作者已经配置好了基本的配置,开箱及用,你需要做的就是npm install 安装下依赖,然后就可以开发业务代码了。

请说出vue.cli项目中src目录每个文件夹和文件的用法?

  • assets文件夹是放静态资源;
  • components是放组件;
  • router是定义路由相关的配置;
  • view视图;app.vue是一个应用主组件;
  • main.js是入口文件

相关文章

  • vue 必知面试题

    vue 必知面试题 css 相关 1 如何让CSS只在当前组件中起作用? 在当前组件的style中加入scoped...

  • 前端面试比较好的文章

    1、前端开发面试题2、vue面试题总汇

  • (web前端) 框架高频面试题

    ***************** Vue 面试题 ***************** 1.聊聊对vue的理解 v...

  • 2022年web前端面试题

    web前端面试题分为:html/css面试题、javascript面试题、vue面试题、性能优化面试题、网络方面面...

  • 最全前端面试题

    Vue面试题 生命周期函数面试题 1.什么是 vue 生命周期 Vue 实例从创建到销毁的过程,就是生命周期。也就...

  • vue原理面试题资源整理

    vuex面试题 Vue生命周期 周期2 Vue通信 父子 兄弟 Vue响应式原理 MVVM Vue axios原理...

  • webpack打包Vue项目必知

    除了webpack基本知识就是知道各种乱七八糟的loader加载器都是干什么的 下面链接是vue-loader相关...

  • 【必知必会】HashMap 面试题

    @[TOC] 1:HashMap 的数据结构? A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。...

  • Vue文档

    vue教程精简版 2019前端面试题 Vue管理后台框架选择推荐

  • 前端vue面试题分享(附答案)

    本篇文章给大家分享一些常见的前端vue面试题,有一定的参考价值,希望对大家有所帮助。 vue面试题 vue.js的...

网友评论

    本文标题:vue 必知面试题

    本文链接:https://www.haomeiwen.com/subject/rapltqtx.html