峡乙刂噶二次封装组件需要考虑的3个重要的问题1props 如何进行传递2插槽如何穿透3暴露实例以及实例中的方法在vue3中的$attrs的变化vue3中$listeners已被删除合并到$attrs中。vue3的$attrs现在包括class和style属性。vue2中不包含class和style属性。也就是说当子组件写上 v-bind$attrs父组件就可以使用子组件的内置事件和内置属性了。下面我们会详细说一下$attrsprops 如何进行传递属性和事件我们可以在子组件中使用 v-bind$attrs这样可以把父组件中的属性传递给子组件了// 子组件// 父组件0101-1如何解决写组件时没有属性提示的问题我们发现一个问题在父组件中的组件写相关属性时没有属性提示。// 子组件这样父组件在使用的时候就可以看到属性提示了。插槽如何封装1: 通过 template 来封装插槽// 父组件.com02暴露实例以及实例中的方法我们可以通过 defineExpose 来暴露实例以及方法【常用的】也可以通过vm.exposed来进行暴露实例以及方法需要注意组件最初设置了v-iffalse这种情况// 子组件// 父组件.com清空值0304另外一种暴露方式常见的暴露方式defineProps({name:xxx,age:xxx,})等价与下面这一种vm.exposed {name:xxx,age:xxx,}vue3 中的 propsprops 是组件的自定义属性用于从父组件向子组件传递数据。props 不会包含继承的属性如 class 和 style除非显式声明。vue3 中的 $attrsvu3中$attrs: 包含了所有[传递]给[子组件]的非 props 属性。如继承的属性如 class 和 style以及未在 props 中声明的属性。vue3中的$attrs: 包含 style和class。$attrs包含着数据和事件。vue3 $listeners已被删除合并到$attrs中。在vue2中的$attrsvu2中$attrs: 包含了所有[传递]给[子组件]的非 props 属性和style和class之外的属性。vue2中的$attrs: 不包含 style和class下面是详细的讲解在V ue2 中attrs里面包含着上层组件传递的所有数据(除style和class)当一个组件声明了prop时候attrs里面包含除去prop里面的数据剩下的数据。结合inheritAttrs:false可以将传递下来的数据应用于其他元素而不是根元素。h函数封装上面的组件有些的小伙伴说我们是否可以使用h函数去封装上面的组件呢