vue-pc后台管理系统:父子传参和子父传参,$parent(四)

本文介绍了Vue.js中组件间的通信方式,包括父组件如何通过props将数据传递给子组件,以及子组件如何通过$emit触发父组件的方法来实现子传父。示例代码详细展示了这两个过程,帮助理解Vue组件通信的基本机制。
摘要由CSDN通过智能技术生成

我大概应该处于会用的状态,也就说一说怎么使用

1.父传子

First.vue

<template>
  <div class="first">
    <el-tabs @tab-click="handleClick">
      <el-tab-pane :label="item" v-for="item in labelList" :key="item">
      <!--父传子-->
        <containTab :msg="item"></containTab>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
//引入组件
import ContainTab from "@/components/ContainTab";
export default {
  name: "First",
  components: {
  //注册组件
    ContainTab,
  },
  data() {
    return {
      labelList: ["用户管理", "配置管理", "角色管理", "定时任务补偿"],
    };
  },
  methods: {
    handleClick() {},
  },
};
</script>
<style lang="less" scoped></style>

Contain组件
在这里插入图片描述
ContainTab.vue

<template>
  <div class="containTab">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  name: "ContainTab",
  //这个属性,可以接收从父组件传来的值
  props: {
    msg: String,
  },
};
</script>
<style scoped lang="less"></style>

这样父传子就完成了

2.子传父

First.vue

<template>
  <div class="first">
    <el-tabs @tab-click="handleClick">
      <el-tab-pane :label="item" v-for="item in labelList" :key="item">
        			<!--父传子-->  <!--子传父-->
        <containTab :msg="item" @showMsg="showMsg"></containTab>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
import ContainTab from "@/components/ContainTab";
export default {
  name: "First",
  components: {
    ContainTab,
  },
  data() {
    return {
      labelList: ["用户管理", "配置管理", "角色管理", "定时任务补偿"],
    };
  },
  methods: {
    handleClick() {},
    //子组件触发父组件的方法,并且传递参数
    showMsg(e) {
      this.$message({
        message: e,
        center: true,
        type: "success",
      });
    },
  },
};

ContainTab.vue

<template>
  <div class="containTab">
    <h1>父传子:{{ msg }}</h1>
    <el-button @click="onMsg">子传父</el-button>
  </div>
</template>

<script>
export default {
  name: "ContainTab",
  props: {
    msg: String,
  },
  methods: {
    onMsg() {
    //触发父组件的方法,并且传递参数
      this.$emit("showMsg", this.msg);
    },
  },
};
</script>
<style scoped lang="less"></style>

这样子传父就完成了

子传父:主要是prop属性
父传子:主要是自定义事件

在这里插入图片描述

3.$parent

子组件通过parent可以获父组件实例 ,然 后通过这个实例就可以访问父组件的属性和方法

 onMsg() {
    //触发父组件的方法,并且传递参数
      this.$parent.showMsg(this.msg);
    },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值