首页 > 试题广场 >

讲一下组件库封装思路,包括:属性透传、事件设计、插槽(含作用

[问答题]
讲一下组件库封装思路,包括:属性透传、事件设计、插槽(含作用域插槽)。
组件库封装: 就是组件存在需要多处使用的情况,抽离封装成一个组件。 属性透传:父组件上, 在引用的组件上将绑定的属性编写好,会透传给封装组件中,这里props我们只用去接收自定义的属性。 原生属性会被$attrs携带, 只需要写v-bind = $attrs 就可以将原生属性透传到子组件上。 这里Vue2和Vue3也有区别。 Vue2:需要 inheritAttrs: false 手动关闭接收到的属性自动挂载到子组件根元素上, 且手动添加v-bind = $attrs Vue3: 如果是在子组件的根元素上, 就不用手动添加,否则依然需要手动添加,这里讲细致一点得通过defineOptions 区把inheritAttrs: false 给关闭。 然后跟Vue2一样手动添加。 事件设计: Vue3: v-bind = $attrs 会把属性和事件一起透传。 Vue2: v-on="$listeners" 事件透传。 插槽: 其实就是在封装的组件上放置插槽 默认插槽<slot> 具名插槽<slot name="sss"> 作用域插槽<slot &#58;row=""> 这里重点讲一下作用域插槽, 作用域插槽会把数据row传递给父组件, 父组件用v-slot去接收 一个对象, 对象里就可以调用row的数据</slot></slot></slot>
发表于 2025-11-30 21:06:26 回复(0)
1. 属性透传。自动接收未声明的 props 属性。v-bind="$attrs"。为了支持原生属性。事件透传 2. 事件设计。提供清晰的事件接口,父组件绑定自定义事件触发回调 3. 插槽:默认插槽,具名插槽,作用域插槽(子组件提供数据,父组件控制渲染逻辑)
发表于 2025-09-25 12:24:34 回复(0)