Vue3 手把手教你自定义组件——setup版

目录

自定义组件,我们一般需要实现这几个点:

为什么使用 script setup ?

刚开始尝试Vue 3的时候用的组合式API都是这样的写法

export default {
  props: {
    title: String
  },
  setup(props) {
    console.log(props.title)
    ...
    return {
        ...
    }
  }
} 

乍一看感觉不如原来的Options API啊,什么逻辑都写到setup里面了,好臃肿的一个方法。

但事实上,Vue 3在对响应式重新设计之后,让我们可以通过refreactive方法来创建声明一个响应式变量,也就意味着我们很多逻辑可以不依赖this.data进行开发和编写,甚至一些响应式逻辑都可以多组件复用。

在了解了这些点之后,即便我们可以将逻辑拆分独立,通过解构的方式导入setup中,让我们代码更加高内聚低耦合,但我们依然避免不了,复杂组件需要return无数的方法或者变量提供给模板使用。

但是,在<script setup> 语法糖出现之后,这个问题得到了极大的改善,不管是import的组件也好,还是声明的变量也罢,都可以不用一个个return了。

编译器会帮助我们转换成setup()函数的内容,这意味着与普通的 <script> 只在组件被首次引入的时候执行一次不同,<script setup> 中的代码会在每次组件实例被创建的时候执行

所以,还不赶紧学起来?

自定义组件

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3 的 script setup 中创建自定义组件的步骤如下: 1. 首先,在组件所在的文件中,引入所需的库和组件: ```vue <script setup> import { defineComponent } from 'vue' import MyCustomComponent from './MyCustomComponent.vue' // 在此处可以引入其他库或组件 </script> ``` 2. 创建自定义组件的选项对象并导出: ```vue <script setup> import { defineComponent } from 'vue' import MyCustomComponent from './MyCustomComponent.vue' // 创建自定义组件选项对象 const MyCustomComponentWrapper = defineComponent({ components: { MyCustomComponent }, // 在此处可以定义其他组件选项,如 props、data、methods、computed 等 // 模板内容 template: ` <div> <h2>My Custom Component</h2> <MyCustomComponent /> </div> ` }) // 导出自定义组件选项对象 export default MyCustomComponentWrapper </script> ``` 在上述代码中,我们使用 defineComponent 函数创建了一个自定义组件的选项对象。在 components 中注册了名为 MyCustomComponent 的子组件。 你可以根据需要在选项对象中定义其他组件选项,如 props、data、methods、computed 等。 最后,在 template 字符串中定义了组件的模板内容。在模板中使用 `<MyCustomComponent />` 的方式来使用子组件。 3. 在需要使用自定义组件的地方,引入并注册该组件: ```vue <template> <div> <MyCustomComponentWrapper /> </div> </template> <script> import MyCustomComponentWrapper from './MyCustomComponentWrapper.vue' export default { components: { MyCustomComponentWrapper } } </script> ``` 在上述代码中,通过引入 MyCustomComponentWrapper 组件,并在 components 中注册,即可在模板中使用 `<MyCustomComponentWrapper />` 的方式来使用自定义组件。 请注意,组件的文件名和路径需要根据你的实际情况进行调整。另外,自定义组件的选项对象可以根据你的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值