vue中父子组件之间通信的方法

news/2024/7/10 0:18:55 标签: vue

<!--  父传子(props)  父组件father.vue -->
<template>
  <div>
    <div>father组件</div>
    <div>父组件要传给子组件的参数:{{msg}}</div>
    <!-- 1.传递:data1为动态参数msg的参数名,名字自定义,与子组件接收参数名同名
    data2为静态参数的参数名,名字自定义,与子组件接收参数名同名 -->
    <child :data1="msg" data2="传递的参数"></child>
  </div>
</template>
<script>
  import child from "./child";
  export default {
      data() {
          return {
              msg:"父组件的参数"
          }
      },
    components: {
      child
    }
  };
</script>
<!-- 子组件child.vue -->
<template>
  <div>
    <div>child组件</div>
    <!-- 3.使用:这里就是接收的父组件参数 -->
    <div>接受的父组件动态参数:{{ data1 }}</div>
    <div>接受的父组件静态参数:{{ data2 }}</div>
    <div>接受的父组件参数:{{ data }}</div>
  </div>
</template>
<script>
  export default {
    // 2.接收:props接收父组件参数,data1与data2为传递参数的参数名,与父组件内同名
    props: ["data1", "data2"],
    data() {
      return {
        data: "默认值"
      };
    },
    // 3.使用:直接用this调用
    mounted() {
      this.data = this.data1;
    }
  };
</script>

父组件所传递参数如果是需要在生命周期中获取赋值,就不能绑定在mounted中,否则子组件方法中this调用不会成功。生命周期顺序:父beforeMount->子beforeCreate……子mounted->父mounted

<!-- 子传父($emit)  子组件child.vue -->
<template>
  <div>
    <div>child组件</div>
    <!-- 这里就是接收的父组件参数 -->
    <input type="button" value="点击向父组件传参" @click="toFather">
  </div>
</template>
<script>
  export default {
    data(){
      return{
        cmsg:'我是子组件的参数'
      }
    },
    methods: {
      toFather(){
        // 1.子组件触发父组件方法
        // $emit第一个参数为所要触发的父组件函数,函数名可自定义但要与父组件中对应函数名同名
        // $emit第二个参数就是子组件向父组件传递的参数
        this.$emit('receive',this.cmsg);
      }
    },
  };
</script>
<!-- father.vue -->
<template>
  <div>
    <div>father组件</div>
    <div>接收子组件参数:{{fmsg}}</div>
    <!-- 2.在对应子组件上绑定函数,这里“receive”是函数名,可自定义但要与子组件触发函数同名 -->
    <child @receive="fromChild"></child>
  </div>
</template>
<script>
  import child from "./child";
  export default {
    data() {
      return {
        fmsg:''
      };
    },
    methods: {
      // 接收子组件参数,赋值
      fromChild(data){
        this.fmsg=data;
      }
    },
    components: {
      child
    }
  };
</script>

http://www.niftyadmin.cn/n/734126.html

相关文章

2018-2019年中国CDN市场发展报告:阿里云成为中国CDN市场的领军者

近日&#xff0c;权威ICT市场咨询机构计世资讯&#xff08;CCW Research&#xff09;发布《2018-2019年中国CDN市场发展报告》&#xff0c;报告显示&#xff0c;当前&#xff0c;随着新型信息技术在中国不断应用&#xff0c;以及互联网化新业务的快速发展&#xff0c;特别是物联…

LWN:怕不怕编译器优化让你的代码彻底乱套?

Whos afraid of a big bad optimizing compiler? July 15, 2019 (Many contributors) 本文贡献者包括Jade Alglave, Will Deacon, Boqun Feng, David Howells, Daniel Lustig, Luc Maranget, Paul E. McKenney, Andrea Parri, Nicholas Piggin, Alan Stern, Akira Yokosawa…

冒泡排序的三种写法

2019独角兽企业重金招聘Python工程师标准>>> 冒泡排序是程序员最耳熟能详的排序了&#xff0c;本文简单叙述下我写过的三种冒泡排序写法。 冒泡&#xff0c;顾名思义&#xff0c;待排序的数字像气泡一样&#xff0c;通过比较&#xff0c;以升序或降序的方式排序。 我…

js使用mescroll下拉刷新和页面传参

引入mescroll.js<script type"text/javascript" src"./js/mescroll.m.js"></script>//插件有详细的配置参数这里我就不多介绍了 //这里结构父盒子的id"mescroll"所以下面设置使用mescroll&#xff0c;可以随便设置 var mescroll ne…

LWN: Linux 5.3合入窗口进展 part 2

点击上方蓝色字关注我们~5.3 Merge window, part 2By Jonathan CorbetJuly 22, 2019在5.3 merge window结束之际&#xff0c;总共有12608个patch被合入mainline仓库。其中约有6000个是在上一次的LWN: Linux 5.3合入窗口进展 part 1 文章之后加入的。当然本次release cycle里&am…

vue跳转页面传递参数的三种方法

vue中this.$router.push()路由传值和获取的两种常见方法 path不能和params一起使用&#xff0c;否则params将无效。需要用name来指定页面。 使用params传参要用name不能使用path 只是大概的介绍一下&#xff0c;如果想看详细的参数用法可以查看我下面的文章 https://blog.csdn.…

ASP.NET MVC从视图传参到控制器的几种形式

1. 传递数组 $(function () {var value ["C#", "JAVA", "PHP"];$("input[typebutton]").click(function () {$.ajax({url: "/Home/List",type: "Get",data: { valuelist: value },traditional: true, //必须设置…

LWN:简单又高效!利用bpftrace分析kernel行为

点击上方蓝色字关注我们~Kernel analysis with bpftraceJuly 18, 2019本文由 Brendan Gregg 提供在2019 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM)峰会里&#xff0c;我有一个keynote介绍了我使用bpftrace在Netflix server上debug过程中&#xff0c;利…