03vue面试题

本文详细讲解了Vue面试中常见的问题,包括父子组件、兄弟组件之间的数据传递,透传attribute的概念,依赖注入,全局和局部组件注册,单向数据流与双向数据绑定的理解,以及v-if与v-show、计算属性与侦听器、方法的区别,还涵盖了Vue的生命周期和钩子函数,最后介绍了兄弟组件的传值方法。
摘要由CSDN通过智能技术生成
  1. 父子组件如何传值?
    父传子
    父组件在调用子组件的位置添加自定义属性,属性的值就是父组件传入子组件的值
    在子组件配置对象,添加一个props选项,用来接收传过来的数据
    注意:如果传入的值是一个非字符的数据,需要绑定属性v-bind:
    选项卡默认是一个数组,数组的元素就是:父组件在调用子组件的位置定义的属性名
    子传父
    父组件在调用子组件的位置绑定自定义事件。
    该事件的处理方式由父组件定义。方法接收的参数是子组件发过来的数据
    在子组件的某个事件或行为中,使用$emit触发自定义事件,并且传递数据
    事件声明是可选的,推荐声明要触发的事件
    兄弟传值
    自定义事件系统
    在要接收数据的组件内部,通过on绑定事件(事件名,事件处理函数)
    在要发送数据的组件内部,通过emit触发事件(事件名,要发的数据)
    自定义事件系统:
    const E = {
    msg:{},
    on(type, cb){
    if(this.msg[type]){
    this.msg[type].push(cb);
    }else{
    this.msg[type] = [cb];
    }
    },
    emit(type){
    if(!this.msg[type]) return;
    const arg = […arguments].slice(1);
    this.msg[type].forEach(val=>{
    val(…arg);
    })
    }
    }

  2. 如何定义具名插槽?
    在组件的模板内,添加一个标记,组件标签的内容渲染到slot标签的位置
    在模板中的中写那么属性及名字,在子组件中用中用v-slot:a和模板中的位置对应

  3. 兄弟组件有哪些传值方式?
    中央总线(自定义事件系统)
    利用父子组件传值子A传给父,父再传给子B
    借助第三方插件:mitt
    4.什么是透传attribute
    透传指的是:传递给一个组件,却没有被该组件的接收,就会添加到根元素上。常见的有class、style、v-on
    如果一个子组件的根元素已经有了class或style,它会会合并

  4. 如何实现依赖注入
    用于祖先组件向其所有子孙后代注入一个依赖
    provide选项是一个函数,返回一个对象,对象的key为要注入的数据名,对象的value为要注入的数据
    inject选项是一个数组,数组内的成员为要引入的祖先组件注入的数据名

  5. 如何注册全局组件:component
    步骤:
    创建模板:app.component(组件名,配置对象)
    配置组件对象:全局的配置对象比跟的配置对象多了template。与模板产生关联

  6. 如何注册局部组件
    步骤:
    是在某个组件下使用components选项,这个选项也是一个对象{组件名:配置对象}

  7. 什么是单向数据流
    所有的props都遵循单向绑定原则,只能在父组件更新,子组件不能更新数据
    改变的场景:
    定义一个新的局部属性,从props上获取初始值
    对基于props的值定义一个计算属性

  8. 什么是双向数据绑定
    给输入框绑定一个输入事件
    触发输入事件,修改了响应式数据
    响应式数据发生了修改,触发了setter函数
    在setter函数中,找使用了stter函数的DOM,修改DOM的内容
    10.v-if和v-show的区别
    if是真正的渲染,页面中不会出现元素
    show是通过display:none来控制元素的显示和隐藏

  9. 计算属性和侦听器的区别
    同等条件下,计算属性优于侦听器
    计算属性可以更方便的解决数据计算的问题
    侦听器可以针对性的监听一个数据的变化,执行相对应的功能,不只是计算数据

  10. 计算属性和方法的区别
    属性是只有数据发生改变是才会重新执行
    方法是每次都会执行

  11. 生命周期的状态和钩子函数
    创建:beforeCreate、created
    挂载:beforeMount、mounted
    更新:beforeUpdata、updated
    卸载:beforeUnmount、unmounted

  12. vue实例身上有哪些全局方法
    component
    mount
    unmount
    props

  13. 兄弟组件如何传值
    中央总线(自定义事件系统)
    借助父子传值
    第三方插件:mitt

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值