vue面试题!

  • 什么是mvvm?
    MVVM是Model-View-ViewModel的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

  • mvvm和mvc区别?
    mvc和mvvm其实区别并不大。都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决了mvc中大量的DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。和当 Model 频繁发生变化,开发者需要主动更新到View 。

  • vue有那几种导航钩子?
    第一种:是全局导航钩子:router.beforeEach(to,from,next),作用:跳转前进行判断拦截。
    第二种:组件内的钩子
    第三种:单独路由独享组件

  • mint-ui是什么?怎么使用?说出至少三个组件使用方法?
    基于vue的前端组件库。npm安装,然后import样式和js,vue.use(mintUi)全局引入。在单个组件局部引入:import {Toast} from ‘mint-ui’。
    组件一:Toast(‘登录成功’);
    组件二:mint-header;
    组件三:mint-swiper

  • v-model是什么?怎么使用? vue中标签怎么绑定事件?
    可以实现双向绑定,指令(v-class、v-for、v-if、v-show、v-on)。vue的model层的data属性。绑定事件:<input @click=doLog()/>

  • vuex是什么?怎么使用?哪种功能场景使用它?
    vue框架中状态管理。在main.js引入store,注入。新建了一个目录store,…… export 。场景有:单页应用中,组件之间的状态。音乐播放、登录状态、加入购物车。

  • vue-router是什么?它有哪些组件?
    vue用来写路由一个插件。router-link、router-view

  • 导航钩子有哪些?它们有哪些参数?
    导航钩子有:
    a/全局钩子和组件内独享的钩子。b/beforeRouteEnter、afterEnter、beforeRouterUpdate、beforeRouteLeave
    参数:
    有to(去的那个路由)、from(离开的路由)、next(一定要用这个函数才能去到下一个路由,如果不用就拦截)最常用就这几种

  • 请详细说下你对vue生命周期的理解?
    创建前/后: 在beforeCreated阶段,vue实例的挂载元素 e l d a t a u n d e f i n e d c r e a t e d v u e d a t a 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组件间的参数传递
    1.父组件与子组件传值
    父组件传给子组件:子组件通过props方法接受数据;
    子组件传给父组件:$emit方法传递参数
    2.非父子组件间的数据传递,兄弟组件传值
    eventBus,就是创建一个事件中心,相当于中转站,可以用它来传递事件和接收事件。项目比较小时,用这个比较合适。

  • Vue的路由实现:hash模式 和 history模式
    hash模式:在浏览器中符号“#”,#以及#后面的字符称之为hash,用window.location.hash读取;
    特点:hash虽然在URL中,但不被包括在HTTP请求中;用来指导浏览器动作,对服务端安全无用,hash不会重加载页面。
    hash 模式下,仅 hash 符号之前的内容会被包含在请求中,如 http://www.xxx.com,因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回 404 错误。
    history模式:history采用HTML5的新特性;且提供了两个新方法:pushState(),replaceState()可以对浏览器历史记录栈进行修改,以及popState事件的监听到状态变更。
    history 模式下,前端的 URL 必须和实际向后端发起请求的 URL 一致,如 http://www.xxx.com/items/id。后端如果缺少对 /items/id 的路由处理,将返回 404 错误。Vue-Router 官网里如此描述:“不过这种模式要玩好,还需要后台配置支持……所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面。”

    扫描二维码关注公众号,回复: 5862064 查看本文章
  • Vuex有哪几种属性?
    五种:state,action,mutation,getter,module
    State:数据源存放地,数据是响应式的
    Action: 逻辑处理,提交的是mutation,包含任意异步操作
    Mutation: 修改state里的公共数据
    Getter: 相当于计算属性,可以复用,可缓存
    Module: 模块化

  • 如何让css只在当前组件中起作用?
    将当前组件的style修改为style scoped

  • active-class是那个组件属性?
    Vue-router模块的router-link组件,设置激活时样式

  • vue中使用插件的步骤是什么?
    Inport … from … 引入插件,Vue.use(…)全局注册

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

  • 为什么避免v-if和v-for用在一起?
    当vue处理指令时,v-for比v-if具有更高的优先级,通过v-if移动到容器的元素,不会在重复遍历列表中的每个值,取而代之的是,我们只检查它一次,且不会v-if为否的时候运算v-for

  • vue router跳转和location.href有什么区别?
    Router是hash改变;location.href是页面跳转,刷新页面

  • vue和react区别
    相同点:
    都鼓励组件化,都有’props’的概念,都有自己的构建工具,Reat与Vue只有框架的骨架,其他的功能如路由、状态管理等是框架分离的组件。
    不同点:
    React:数据流单向,语法—JSX,在React中你需要使用setState()方法去更新状态
    Vue:数据双向绑定,语法–HTML,state对象并不是必须的,数据由data属性在Vue对象中进行管理。适用于小型应用,但对于对于大型应用而言不太适合。

  • 指令v-el的作用是什么?
    提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标.可以是 CSS 选择器,也可以是一个 HTMLElement 实例,

  • Mutation和Action的区别。
    Mutations的更改是同步更改,用于用户执行直接数据更改,this. s t o r e . c o m m i t ( ) A c t i o n s , t h i s . store.commit(‘名’)触发 Actions的更改是异步操作,用于需要与后端交互的数据更改,this. store.dispath(“名”)触发

  • nextTick使用场景。
    Vue.nextTick:在dom更新后执行,一般用于dom操作
    Vue.$nextTick:一直到真实的dom渲染结束后执行

  • 请说出vue.cli项目中src目录每个文件夹和文件的用法?
    assets文件夹是放静态资源;components是放组件;router是定义路由相关的配置;view视图;app.vue是一个应用主组件;main.js是入口文件

猜你喜欢

转载自blog.csdn.net/weixin_42870180/article/details/89187344
今日推荐