vue前端面试笔试集合

1.v-show 与 v-if 的区别
v-show是将元素的display属性设置为block和none;v-if是dom节点的存在与否。频繁切换时用v-show。
2.class 与 style 如何实现动态数据绑定
使用v-bind指令,v-bind:class、v-bind:style。
如何理解?

<div v-bind:class="{ active: isActive }"></div>
动态改变isActive的值就可以实现动态改变class的active属性
<div v-bind:style="{ color: color,fontSize: fontSize + 'px' }"></div>
动态改变color、fontSize的值实现改变style的属性

3.计算属性(computed)和watch的区别
computed: 依赖其他属性,并且computed的值有缓存。比如需要进行数据计算时,可以利用computed的缓存特性,避免每次获取值时都要重复计算。
watch:要在数据变化时执行异步操作时,应该使用watch,每次数据变化都会执行回调。
4.事件修饰符
.native: 绑定一个原生的click事件。
.capture:事件侦听,事件发生时调用。
.stop: 阻止单击事件冒泡。
click.ctrl.exact: 按下ctrl键时触发。
5.开发中常用的指令
v-if、v-for、v-model、v-on:click(@click)、v-bind、v-show
6.单组件中实现双向数据绑定
v-model 指令
7.插槽
slot,写法:<template slot-scope="scope" slot="xxx"></template>
8.父子组件传值
父传子用 :xxxx=“值” 子接收父的数据用props;
子传父用$emit() ,父用@xxx=“xxx”接收。
9. Vue 如何去除url中的 #

vue-router 默认使用 hash 模式,所以在路由加载的时候,项目中的 url 会自带 #。如果不想使用 #, 可以使用 vue-router 的另一种模式 history 。

10. r o u t e 和 route和 routerouter的区别

$router 为 VueRouter 实例,想要导航到不同 URL,则使用 $router.push 方法
$route 为当前 router 跳转对象里面可以获取 name 、 path 、 query 、 params 等。

11.Vue 组件 data 为什么必须是函数
因为js本身的特性带来的,如果 data 是一个对象,那么由于对象本身属于引用类型,当我们修改其中的一个属性时,会影响到所有Vue实例的数据。如果将 data 作为一个函数返回一个对象,那么每一个实例的 data 属性都是独立的,不会相互影响了
12.vue的响应式原理
当vue实例被创建时,会遍历data中的所有属性,用object.defineProperty转为getter/setter,并在内部跟踪其依赖,当其依赖性调用setter时,会在watcher中重新计算,更新组件。
13.delete和Vue.delete删除数组的区别
delete删除数组只是将其值改为empty或者undefind,没有改变键值。
Vue.delete时删除键值对,形成一个新数组。
14.vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决?
页面没有响应式渲染,因为data中没有声明,可以使用this.$set(对象,键,值)
15.keep-alive 的作用
包裹动态组件时,会缓存不活动的组件,避免重新渲染。
16.三个常见钩子函数
created: vue实例创建之后调用;
mounted:实例创建前调用;
activated:keep-alive激活时调用

猜你喜欢

转载自blog.csdn.net/qq_43482627/article/details/108141073