vue 面试题

1,vue使用的是什么模式?请具体介绍一下这种模式

渐进式开发,采用mvvm的模式

model (模型层) axios data vuex(state)

view (视图层) template < template>< /template>

viewmodel(传递者)是双向绑定实现的机制

延伸问题:什么是渐进式?

Vue渐进式-先使用Vue的核心库,再根据所需要的功能再去增加相应的插件。

2,数据渲染 有几种方式 有什么区别?

v-htme 可以解析标签

v-text:原模原样输出

3.v-if和v-show有什么区别,切换时组件触发那些生命周期钩子函数?

v-if控制的是dom的销毁和创建

v-show只是控制的是display属性

触发的生命周期 v-if 显示:创建  挂载 隐藏:销毁

v-show不触发

4,v-if和v-for为什么不建议混合使用

被渲染的dom会重复一个创建销毁的过程

v-for的优先级比v-if高

5,vue中如何自定义指令(全局和局部)

全局的:参数一 : 指令调用的dom对象

              参数二 : 获取相应的传值信息

指令定义函数提供了几个钩子函数 (可选)

bind:只调用一次

inserted:被绑定元素插入父节点时调用

update:所在组件的 VNode 更新时调用

componentUpdated:所在组件的 VNode全部更新时调用

unbind:只调用一次,指令与元素解绑时调用

6,vue中常用的指令有哪些

V-text:主要用来更新textContent
V-html:设置innerHTML
V-show:也是用于根据条件展示元素
V-if:可以实现条件渲染
V-else-if:当v-if的else-if块
V-else:是搭配v-if使用的,它必须紧跟在v-if或者v-else-if后面,否则不起作用。
V-on:用来监听dom事件
V-bind:用来动态的绑定一个或者多个特性
v-for:用v-for指令根据遍历数组来进行渲染
V-model:双向数据绑定
V-slot:  插槽
V-pre:跳过这个元素和它的子元素编译过程
V-cloak:这个指令是用来保持在元素上直到关联实例结束时进行编译。
V-once:只会渲染一次 实例极其所有的子节点将被视为静态内容跳过

7,计算属性和实例方法有什么区别?

计算属性有缓存 但是不能传参

实例方法没有缓存 可以传参

8,如何声明一个过滤器(全局的和局部的)

过滤器,将数据被渲染到视图之前进行格式化处理,不会修改作用域中原有的数据
原则是:左值右量

全局的

vue.filter

局部的

filters

9,你用过那些v-model修饰符?

.lazy文本框失去焦点后在更新数据
.trim清除前后空格的
.number从字符中获取数字

10,你知道那些事件修饰符

.stop阻止事件冒泡
.once只执行一次,一次性事件
.self阻止事件冒泡和事件捕获
.captrue事件捕获阶段触发
.prevent阻止浏览器默认行为
.native 触发原生事件

11,怎样声明全局组件,怎样使用全局组件


全局

Vue.component(‘myHeader’,{
         Template:` <div>全局组件</div>`
    })

使用

<my-header></my-header>

12,怎样声明局部组件,怎样使用局部组件

定义  import引入 注册components 调用

13,父子组件怎样实现通讯?

父传子:

父组件:<mydiv :list='list'> </mydiv>
子组件:props[‘list’]

子传父:

子组件:this.$emit(‘子组件事件名’,参数)
父组件:<mydiv @子组件事件名=‘父组件事件名’></mydiv>

14,非父子组件之间如何传递参数?

兄弟组件可以父传子 子传父 pass
Vuex也可以实现数据共享(官方推荐使用vuex)
sessionStorgey

15,怎样使用props限定传递的数据,有哪些属性?

type //限定传递的数据类型
Required:true false //是否必传
Default:false //指定默认值
    // 自定义验证函数
validator: function (value) {
        // 条件
     } 

16,解释VUE中单向数据流的概念

子组件不可以直接修改父组件传过来的参数,如果直接修改会报错,只能声明成自己的才可以修改
注:this.$parent.title,可以修改父组件传过来的值

17,vue有哪些插槽,如何使用

默认插槽:<slot></slot>
具名插槽:具有name属性的插槽 ,定向给插槽传递内容
作用域插槽:作用域插槽其实就是带数据的插槽。作用域插槽就可以通过子组件绑定数据传递给父组件。

18,vue中怎样实现组件之间的嵌套

可以使用插槽,让插槽接受子组件中的内容

19,vue中怎样操作dom

ref document.getbyid()

20,vue怎样监听数据的变化,怎样监听一个对象属性的变化

watch     深度监听,deep:true

21,vue中生命周期钩子函数有哪些,请写出语法

    创建前beforeCreate       创建后created(请求axios)
    挂载前beforeMount        挂载后mounted(也可以请求axios)
    更新前beforeUpdate       更新后updated 
    销毁前beforeDestroy      销毁后destroyed 

22,挂载和创建之间的区别

   创建之后只可以访问数据不可以操作dom
   挂载之后可以访问数据可以操作dom

23,keep-alive组件有什么作用?

当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁。

24,vue.nextTick方法有什么用?

当数据更新了,在dom中渲染后,自动执行该函数

25,vue实现双向数据绑定的原理是什么?

用object.defineProperty将他转化为getter或者setter      v-model

26,什么是vue全局事件解绑?

在 bofordestroy销毁事件中销毁,清除

27,$set 方法有什么用? 有什么特点?

$set是用于设置对象属性的

对于没有声明的属性使用 $set ,视图才会更新

28,路由显示区域和路由跳转 分别是哪个组件?

显示:router-view  

跳转 router-link <=> a  tag=“span”? to=“path” active-class

29,路由中怎样传递和接收参数(单个 多个参数) window.localtion.href=""

this.$router.push 跳转

this.route.xxx 接收

30,active-class的作用

是vue-router模块的router-link组件中的属性,用来做选中样式的切换

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值