【Vue】Setup 函数的使用

学习内容:
1)Vue3 里面提供的新的语法API,‍‍叫做composition API。

什么是composition API?

为什么我们要用composition API?

当我们在项目开发之中会遇到这样的问题,比如说当我的这样的一个组件‍‍越来越大的时候,它里面会有这种name、age一系列的东西:

同时它还会有 methods 这样的东西:【这些代码都可以模板化】

比如说有 setName这样的方法,‍‍
然后还会有setAge这样的方法,

然后还会有一些其他的方法,比如说 a()、b()的一些方法 都会写在这,

除了这之外,我们还会写 computed 计算属性:

这里面又会写很多新的计算属性,然后再去写一些什么,比如说 directives:

directives 它是一个对象,它里面可能会有很多的东西,
然后又会有 mixin这样的内容。‍‍代码写注释:

<
### 使用 `defineExpose` 暴露组件属性或方法 在 Vue 3 的 `<script setup>` 模式中,`defineExpose` 是一个非常有用的工具,允许开发者有选择地向父组件暴露特定的属性和方法。这不仅提高了代码的安全性和可控性,还使得父子组件之间的交互更加清晰。 #### 基本概念 `defineExpose` 主要用于控制哪些内部状态或逻辑可以被外部访问。通过这个宏函数,可以在不破坏封装性的前提下实现必要的数据共享[^1]。 #### 实际应用案例 下面是一个具体的例子,展示了如何利用 `defineExpose` 来让父级能够调用子组件的方法: ```html <!-- 子组件 Child.vue --> <template> <div>{{ count }}</div> </template> <script setup> import { ref } from 'vue'; const count = ref(0); // 定义可被外界访问的内容 defineExpose({ incrementCount() { count.value++; }, }); </script> ``` 在这个例子中,`incrementCount()` 方法被设置为对外可见,因此父组件可以直接调用来改变计数值[^2]。 对于希望获取并操作该方法的父组件来说,则只需像这样编写模板部分即可完成绑定: ```html <!-- 父组件 Parent.vue --> <template> <!-- ...其他HTML结构... --> <Child ref="childRef"></Child> <button @click="callIncrement">点击增加</button> </template> <script setup> import { ref } from 'vue'; import Child from './components/Child.vue'; const childRef = ref(null); function callIncrement(){ if (childRef.value && typeof childRef.value.incrementCount === "function") { childRef.value.incrementCount(); } } </script> ``` 这里的关键在于使用了 `ref` 属性关联到子组件实例上,并通过 JavaScript 访问其公开接口来进行互动[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码写注释

请赞赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值