vue3 +TS 父子组件之间的传值 通信

在这里插入图片描述

//子组件
<template>
  <div>
    <p>父级传递来的值=>{{ data }}</p>
    <p>{{ son }}</p>
    <p><button @click="nextDown">子按钮</button></p>
  </div>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from "vue"; //
//参数 数据类型配置
interface DataProps {
  son: any;
  key: number;
}
export default defineComponent({
  name: "FirstStep",
  components: {},
  props: {
    data: {
      type: String, //设置数据类型
      required: true, //是否必传
      //对象
      // default: () => {
      //   return {
      //     type: 0,
      //     message: "",
      //   };
      // },
      // 非对象
      default: "默认参数",
    },
  },
  emits: ["nextStep"], //事件名称
  setup(props: any, context: any) {
    //  context子传递父的事件
    //需要展现到页面的变量
    const data: DataProps = reactive({
      son: "子元素",
      key: 1,
      /**
       * 下一步点击
       */
      nextDown() {
        let index = data.key++;
        context.emit("nextStep", index);
      },
    });
    const refData = toRefs(data);
    /**
     * 抛出最终使用的参数+事件
     */
    return {
      ...refData,
    };
  },
});
</script>
//父集
<template>
  <div class="_login">
    <firstStep @nextStep="nextStep" :data="data1"></firstStep>
  </div>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from "vue"; //
import firstStep from "@/pages/step/firstStep.vue";

interface DataProps {
  data1: any;
}
export default defineComponent({
  name: "Login",
  components: { firstStep },
  setup() {
    //需要展现到页面的变量
    const data: DataProps = reactive({
      data1: "父给子的参数",
      /**
       * 下一步
       * 点击反馈
       */
      nextStep($event: any) {
        
        data.data1 = $event;
      },
    });
    const refData = toRefs(data);
    /**
     * 抛出最终使用的参数+事件
     */
    return {
      ...refData,
    };
  },
});
</script>

来个赞。收藏下吧

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值