当前位置:首页 > 技术分析 > 正文内容

vue3中父子传值、defineProps用法、defineEmits用法

ruisui885个月前 (01-07)技术分析30

Vue3中新增了一个 script setup 语法糖模式,可以在单文件组件中更简洁地编写组件逻辑。使用 script setup 语法后,props、data、computed、methods 等选项不再需要独立定义,而是可以直接在 setup 函数中声明,代码结构更加清晰,并且可以更方便地使用响应式数据、生命周期等功能。

父子传值,在 script setup 中可以使用 defineProps 函数声明 props,这样就可以更加清晰地指明子组件使用的属性类型和默认值。在组件模板中直接使用props中定义的属性即可,无需额外定义 data。

父组件示例:

<template>
  <ChildComponent :msg="parentMsg" @update-msg="updateParentMsg"></ChildComponent>
</template>

<script setup>
import ChildComponent from "@/components/ChildComponent.vue";
import { ref } from 'vue';

defineProps({
  parentMsg: String
});

const updateParentMsg = (val) => {
  parentMsg.value = val;
};
</script>

子组件示例:

<template>
  <div>
    <p>{{ msg }}</p>
    <button @click="emitMsg">emit</button>
  </div>
</template>

<script setup>
import { defineProps, defineEmits } from 'vue';

defineProps({
  msg: String,
});

const emitMsg = () => {
  emit('update-msg', 'changed by childComponent');
};

defineEmits(['update-msg']);
</script>

在上述代码中,定义 props 和 emits 的方式与非 setup 模式下略有不同,直接使用 defineProps 和 defineEmits 函数来声明。同时,在 setup 函数中可以使用 ref、reactive、computed 等函数来创建响应式数据。

总的来说,使用 script setup 语法糖模式可以让代码更简洁、清晰,减少了不必要的重复定义,同时还能够方便使用 Vue 3 的响应式功能。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/70.html

分享给朋友:

“vue3中父子传值、defineProps用法、defineEmits用法” 的相关文章

Vue3 中有哪些值得深究的知识点?

众所周知,前端技术一直更新很快,这不 vue3 也问世这么久了,今天就来给大家分享下vue3中值得注意的知识点。喜欢的话建议收藏,点个关注!1、createAppvue2 和 vue3 在创建实例时,有很大的区别,具体对比如下://Vue 2 Vue.use({ router, store,...

Git 分支管理策略与工作流程

(预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。看完这篇文章后,涉及GIT的工作中就会减少因为规范问题导致工作出错,当然如果你现在暂时还未有合...

迁移GIT仓库并带有历史提交记录

迁移git仓库开发在很多时候,会遇到一个问题。GIT仓库的管理,特别是仓库的迁移。我需要保留已有的历史记录,而不是重新开发,重头再来。我们可以这样做:使用--mirror模式会把本地的分支都克隆。// 先用--bare克隆裸仓库 git clone git@gitee.com:xxx/testApp...

美国民众负债累累 但今年假期消费者支出仍将创下新高

智通财经APP获悉,在迎接假期之际,许多美国人已经背负了创纪录的信用卡债务。然而,今年假期消费者支出仍将创下新高。根据美国零售联合会(NRF)上周发布的报告,预计今年11月1日至12月31日期间的消费总额将达到创纪录的9795亿至9890亿美元之间。NRF首席经济学家Jack Kleinhenz表示...

深度解析!AI智能体在To B领域应用,汽车售后服务落地全攻略

在汽车售后服务领域,AI智能体的应用正带来一场效率和专业度的革命。本文深度解析了一个AI智能体在To B领域的实际应用案例,介绍了AI智能体如何通过提升服务顾问和维修技师的专业度及维修效率,优化汽车售后服务流程。上周我分享了AI智能体+AI小程序To C的AI应用场景《1000%增长!我仅用一个小时...

Vue进阶(幺叁捌):vue路由传参的几种基本方式

1、动态路由(页面刷新数据不丢失)methods:{ insurance(id) { //直接调用$router.push 实现携带参数的跳转 this.$router.push({ path: `/particulars/${id}`,...