Vue3_透传 Attributes
什么是透传Attributes
透传属性指的是 没有被该组件声明为props或emits的属性或v-on事件监听器,eg:class、style、id...
在 JavaScript 中访问透传 Attributes
// 使用useAttrs() API来访问一个组件的所有透传属性
<script setup>
import { useAttrs } from 'vue'
const attrs = useAttrs()
</script>
// 使用setup(props, ctx),attrs作为setup()上下文对象的一个属性暴露
export default {
setup(props, ctx) {
// 透传 attribute 被暴露为 ctx.attrs
console.log(ctx.attrs)
}
}
attrs 对象总是反映为最新的透传 attribute
参考:
https://juejin.cn/post/6865451649817640968#heading-3
https://cn.vuejs.org/guide/components/attrs.html
学而不思则罔,思而不学则殆!