vue3部分新功能

vue3- $attrs 和 片段

前提: vue3在组件中支持多个根元素

假设: 父组件中引用子组件时传递的非prop或者emit属性为自由属性(style就属于此刻定义的自由属性)

  1. 当子组件只有一个根元素时, 自由属性在子组件中都可以通过$attrs获取
  2. 当子组件中有多个根组件时, 自由属性无法准确的传递给子组件中对应的根节点,此时,子组件中可以在需要的根节点上添加v-bind="$attrs"来引导父组件中的属性去到子组件的相应根节点中

举例:

// 父组件 son为子组件
<template>
  <son my-freedom="自由属性"></son>
</template>
// son组件-单个根节点
<template>
  <div></div><div  myFreedom="自由属性"></div>
</template>
// son组件-多个根节点
<template>
  <div></div>
  
  <div v-bind="$attrs"></div><div  myFreedom="自由属性"></div>
</template>
//vue3中attrs的使用
import { useAttrs } from 'vue'
const attrs = useAttrs()
console.log(attrs.myFreedom)

vue3- Teleport

通过 to 指定代码渲染位置, to的值可以是“#a,.a或是有语义的标签”

使用场景: 是创建一个包含全屏模式的组件。在大多数情况下,你希望模态框的逻辑存在于组件中,但是模态框的快速定位就很难通过 CSS 来解决

 <teleport to="body">
   <div class="modal"></div>
 </teleport>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值