VUE面试常考知识点

本文介绍了Vue.js的生命周期钩子函数,包括beforeCreate、created、beforeMount、mounted等,以及组件间的通信方式如props、$parent/$children、provide/inject。还讨论了extend的用途、mixin与mixins的差异,以及computed和watch的使用场景。此外,对比了v-show和v-if在条件渲染中的区别。
摘要由CSDN通过智能技术生成

1、生命周期钩子函数

(1)beforecreate:最早执行,在实例初始化之后,无法访问数据

        created:可以获取数据(发Ajax请求用created),但组件未挂载,访问不到真实的dom节点

(2)beforeMount:在挂载开始前被调用,可以访问数据,虚拟dom已存在,不能拿到节点

        mounted:在页面挂在后执行,可以拿到节点和数据

(3)beforeUpdate:在数据更新前调用

        updated:在数据更新后调用,监控数据变化

(4)beforeDestroy:实例销毁前调用,适合移除时间、定时器等,防止内存的泄露

        destoryed:组件销毁后使用

(5)activated: 被keep-alive缓存的组件激活时调用

        deactivated:被keep-alive缓存的组件停用时调用

2、组件通信

(1)父子组件:

【1】父组件通过props传递数据给子组件,子组件通过emit发送事件传递数据给父组件

【2】通过访问$parent或者$children对象来访问数组

(2)兄弟组件:

通过父组件的子组件实现:this.$parent.$children

(3)跨多层次组件通信:

可以使用 Vue 2.2 新增的 API provide / inject

3、extend能做什么

vue.extend用于创建组件构造器,通常与$mount一起使用(常用来实现加载效果,弹窗效果等)

4、mixin与mixins的区别

mixin 用于全局混入,会影响到每个组件实例,通常插件都是这样做初始化的

Vue.mixin({
    beforeCreate() {
        // ...逻辑
        // 这种方式会影响到每个组件的 beforeCreate 钩子函数
    }
}) 

mixins 应该是我们最常使用的扩展组件的方式了。如果多个组件中有相同的业务逻辑,就可以将这些逻辑剥离出来,通过 mixins 混入代码,比如上拉下拉加载数据这种逻辑等等。

5、computed和watch的区别

computed:computed时计算属性,computed中的函数所依赖的属性没有发生变化,那么调用当前的函数的时候会从缓存中读取,且computed中的函数必须要用return返回

watch:用于监听一个值的变化,每次监听的值发生变化时都要进行回调

所以一般来说需要依赖别的属性来动态获得值的时候可以使用 computed,对于监听到值的变化需要做一些复杂业务逻辑的情况可以使用 watch

6、v-show和v-if的区别:

v-show:通过css样式中的dispaly:none;控制元素显示、隐藏 

v-if:是真正的条件渲染,它通过控制vue的虚拟dom树上的节点,来联动控制真实dom上的节点,从而控制元素的显示、隐藏

当一个元素需要平方转换状态时,适合用v-show

当一个元素的状态很少被改变是,用v-if更合适

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值