当前位置:网站首页 > Vue.js开发 > 正文

vue 插槽传值(vue的插槽有几种方式)



Vue 组件的使用不管是在平常工作还是在面试面试中,都是频繁出现的。因此系统的梳理一下组件之间的传参还是非常有必要的

 
  

第三种对象默认支持 4 种属性,并且都是非必填的。可以随意使用

第一种静态属性传参

注意:

  1. 在不定义 props 类型的情况下 props 接受到的均为 String
  2. 当 props 属性指定为 Boolean 时,并且只有属性 key 没有值 value 时接受到的是 true
 
  

第二种动态属性传参

注意:

  1. 需要区分非简写形式传入的值是对象,则会对应 props 中多个值
  2. 会保留传入值的类型
  3. 如果是表达式则获取到的是表达式的计算结果
 
  

$attrs

$attrs 会获取到 props 中未定义的属性(class 和 style 属性除外),支持响应式。常用的场景有俩种:

  1. 组件嵌套组件时可以使用 $attrs 来支持过多的属性支持。比如 elementUI 的 table 组件。支持的属性十几个,而平常封装的时候用的最多的也就一俩个。
  2. 属性默认是添加在父组件上的,有时候想把多余的属性添加在子组件上(可以结合 inheritAttrs: false 属性,让父属性不接受多余的属性)

$listeners 定义的事件都在子组件的根元素上,有时候想加到其他元素上。就可以使用 $listerners。它包含了父组件中的事件监听器(除了带有 .native 修饰符的监听器)

Vue 默认有 $on $emit $once $off 几种方法来实现发布订阅模式,这也应用在了组件传参上。在组件上添加的特殊方法 @abc="methods" 就相当于使用了 $on 来监听这个方法。因此组件内可以使用 $emit 来进行通知。

这里有一道考题: for 循环的时候如何拿到子组件的传值和 for 中循环的值

答案有俩种,一是 $event, 二是 闭包。只是需要注意 $event 只能获取到第一个

 
  

这个其实是一种通过 emit,on 的组合方式。优点再于同步值方便,写法优雅。下面三种写法其实是一个意思

 
  
 
  
  1. $root 获取根组件
  2. $parent 获取父组件
  3. $children 获取子组件(所有的子组件,不保证顺序)
  4. $refs 组件获取组件实例,元素获取元素

注意:注入的值是非响应的

 
  

这个相当于单独维护的一组数据,就不过多的说了。

到此这篇vue 插槽传值(vue的插槽有几种方式)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • map转换成json字符串(map怎么转换成json字符串)2026-03-05 15:27:09
  • ubuntu 20.04镜像(ubuntu18.04镜像)2026-03-05 15:27:09
  • 文件管理系统软件 华为(华为文件管理10.6.0.303)2026-03-05 15:27:09
  • vmware12.0密钥(vmware 12 密钥)2026-03-05 15:27:09
  • vmware6.0密钥(vmware 密钥)2026-03-05 15:27:09
  • mysql主从主键冲突(mysql5.7主从)2026-03-05 15:27:09
  • libxml2.so.2是什么(libxml-2.0)2026-03-05 15:27:09
  • jsjx是什么意思(jsi是什么意思)2026-03-05 15:27:09
  • spss22.0使用教程(spss 22.0软件使用教程)2026-03-05 15:27:09
  • jvm内存结构 内存模型 区别(jvm1.8内存模型)2026-03-05 15:27:09
  • 全屏图片