vue新一轮的面试题

参考的连接: https://juejin.cn/post/6844903876231954446

1. 在vue中watch和created哪个先执行?为什么?

在wacth监控数据时,设置immediate:true;会优先执行watch,created后执行;反之则反

2. 在使用计算属性的时,函数名和data数据源中的数据可以同名吗?

不可以,同名会报错:The computed property "xxxx" is already 
不可以,因为初始化vm的过程,会先把data绑定到vm,
再把computed的值绑定到vm,会把data覆盖了。

3. 我对重排的定义:

重排(回流):当render树中的一部分或者全部,
因为大小边距等问题发生改变,而需要DOM树重新计算的过程叫做:重排(回流)。

v-show指令其原理就是改变display涉及到了DOM结构的改变。
所以放生了重排。

4. 在vue项目中穿透符有哪些?

普通的css使用    >>>
scss使用       ::v-deep
less使用      /deep/ 

5. vue-loader在webpack编译流程中的哪个阶段?

编译模板阶段:从入口文件出发,调用所有配置的Loader的模块进行编译,
再找出该模块依赖的模块,再递归本步骤,直到所有入口依赖的文件,都经过了本步骤的处理

6. v-if和v-show哪个优先级更高? 你去看一下

我来解释:if>show
还有一种说没有优先级

7. vue的v-for如何倒序输出?

1. 先把数组做一层reverse()倒叙处理,然后在执行v-for
2. 使用css3 flex 容器的 order

8. axios同时请求多个接口,如果当token过期时,怎么取消后面的请求?

axios的话可以使用cancelToken来实现。如果是原生的XMLhttprequest的话,需要使用abort()方法实现。

9.你知道vue的模板语法用的是哪个web模板引擎的吗 说说你对这模板引擎的理解

用了Mustache模板引擎

vue的.sync 修饰符可以用表达式吗?

不可以

你知道style加scoped属性的用途和原理吗?

用途:scoped会在元素上添加唯一的属性(data-v-x形式),
css编译后也会加上属性选择器,在标签上绑定了自定义属性,
防止css全局污染

如何在子组件中访问父组件的实例?

this.$parent拿到父组件实例
this.$children拿到子组件实例(数组)

vue中如果父组件想调用子组件的方法,可以在子组件中加上ref,然后通过this.$refs.ref.method调用(https://www.cnblogs.com/jin-zhe/p/9523029.html)
Vue中子组件调用父组件的方法,这里有三种方法提供参考:
1:直接在子组件中通过this.$parent.event来调用父组件的方法
2:在子组件里用$emit向父组件触发一个事件,父组件监听这个事件
3:父组件把方法传入子组件中,在子组件里直接调用这个方法
(https://www.cnblogs.com/jin-zhe/p/9523782.html)

watch的属性用箭头函数定义结果会怎么样?

因为箭头函数默绑定父级作用域的上下文,所以不会绑定vue实例,所以 this 是undefind

你有使用过babel-polyfill模块吗?主要是用来做什么的?

ES6的转码。IE的兼容

babel默认只转换语法,而不转换新的API,
如需使用新的API,
还需要使用对应的转换插件或者polyfill去模拟这些新特性。

Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。

举例来说,ES6在Array对象上新增了Array.from方法。
Babel就不会转码这个方法。如果想让这个方法运行,
必须使用babel-polyfill,为当前环境提供一个垫片。
currentTarget:事件绑定的元素
target:鼠标触发的元素

event.currentTarget指向事件所绑定的元素,而event.target始终指向事件发生时的元素。

在.vue文件中style是必须的吗?那script是必须的吗?为什么?

试验了下,在 .vue 文件中,template是必须的,而script与style都不是必须的。

vue怎么实现强制刷新组件?

this.$forceUpdate()

//模版上绑定key
<SomeComponent :key="theKey"/>
//选项里绑定data
data(){
  return{
      theKey:0
  }
}
//刷新key达到刷新组件的目的
theKey++;

vue变量名如果以_、$开头的属性会发生什么问题?怎么访问到它们的值?

报错 变量未定义
以 _ 或 $ 开头的属性 不会 被 Vue 实例代理,因为它们可能和 Vue 内置的属性、API 方法冲突。
你可以使用例如 $data.xxx或者_data.xxx 的方式访问这些属性。

在vue中created与activated有什么区别?

vue中mixins和extends有什么区别?

讲讲你对 sync修饰符的理解

Vue.observable你有了解过吗?说说看

vue中怎么重置data?

说说你对vue的错误处理的了解?

在vue事件中传入$event,使用e.target和e.currentTarget有什么区别?

说下$attrs和$listeners的使用场景 #461

使用

普通的css使用 
<style scoped>
>>> .disanfangclass {
  color: gray;
}
</style>

scss使用
<style lang="scss" scoped>
::v-deep .formatter-text {
  color: red;
}
</style>


less使用  
<style scoped lang="less">
  /deep/  img{
     100px;
    height: 100px;
  }
</style>
作者:明月人倚楼
出处:https://www.cnblogs.com/IwishIcould/

想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,或者关注博主,在此感谢!

万水千山总是情,打赏5毛买辣条行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主(っ•̀ω•́)っ✎⁾⁾!

想问问题,打赏了卑微的博主,求求你备注一下的扣扣或者微信;这样我好联系你;(っ•̀ω•́)っ✎⁾⁾!

支付宝
微信
本文版权归作者所有,欢迎转载,未经作者同意须保留此段声明,在文章页面明显位置给出原文连接
如果文中有什么错误,欢迎指出。以免更多的人被误导。
原文地址:https://www.cnblogs.com/IwishIcould/p/15760811.html