Vue父子传递实例讲解

作者:laozhang 时间:2023-07-02 17:03:29 

实现功能:

1、子组件的input输入,改变父组件信息

2、父组件对子组件1,3进行监听与控制

3、子组件1与子组件3相互关联

父子双向通信流程:

子组件的input通过事件监听->控制子组件的data中变量/向父组件$emit子事件及变量

父组件监听到$emit事件及变量,赋予父组件的变量,通过props传到子组件


<body>
<div id = "app">
<!-- //将父组件num1的数据传给props中的pnumber1,实现父传子
//监听子组件num1change事件,这里recdnum1函数,没明白加括号出错 -->
<cnp
:pnumber1 = "num1"
:pnumber3 = "num3"
@num1change = "recdnum1"
@num3change="recdnum3" >
</cnp>
</div>

<!-- //template 编写自己的模版 -->
<template id = "mytemp">
<div>
 <h3>props:{{pnumber1}}</h3>
 <h3>child-data:{{dnumber1}}</h3>
 <h3></h3>
 <input type="text" :value="dnumber1" @input="num1input">
 <h3>props:{{pnumber3}}</h3>
 <h3>child-data:{{dnumber3}}</h3>
 <input type="text" :value="dnumber3" @input="num3input">  
</div>
</template>

<script>
var app = new Vue({
el:"#app",
data(){
 return{
  //父组件数据库中的默认数值
  num1:11,
  num3:31,
 }
},
methods:{
 //监听事件中,将子组件传来的dnumber1传给num1,num1传给pnumber1
 recdnum1(value){
  //默认传递来的value为String,根据需要转为Int或Float
  this.num1 = parseInt(value);
  },
 recdnum3(value){
  this.num3=parseFloat(value);
  }  
},
components: {
 cnp:{
  template:"#mytemp",
  props: {
   pnumber1:{
    //默认props的数据格式和默认值
    type:Number,
    default:1
   },
   pnumber3:{
    type:Number,
    default:3
   }        
  },
  data(){
   return{
    //将props的数值赋予data中变量
    dnumber1:this.pnumber1,
    dnumber3:this.pnumber3
   }
  },
  methods: {
   num1input(event){
    //将input中的数值传给dnumber1
    this.dnumber1 = event.target.value;
    //向父组件发射事件num1change,并传出dnumber1数据
    this.$emit("num1change",this.dnumber1);
    //绑定pnumber3数值的关联性
    this.dnumber3=this.dnumber1*5;
    //向父组件发射pnumber3信息
    this.$emit("num3change",this.dnumber3);
   },
   num3input(event){
    this.dnumber3 = event.target.value;
    this.$emit("num3change",this.dnumber3)
   },
  }
 }
}
});
</script>
</body>

来源:https://www.cnblogs.com/xiaoguniang0204/p/12307210.html

标签:Vue,父子传递
0
投稿

猜你喜欢

  • asp 解析一个xml文件的公用函数集合

    2008-02-29 13:40:00
  • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件

    2023-09-08 09:30:22
  • 基于python进行桶排序与基数排序的总结

    2023-06-13 17:32:33
  • Idea开发工具之SpringBoot整合JSP的过程

    2023-06-14 19:50:23
  • python cv2截取不规则区域图片实例

    2022-08-31 18:58:42
  • tensorflow使用freeze_graph.py将ckpt转为pb文件的方法

    2023-01-31 15:31:05
  • Python+OpenCV实现信用卡数字识别的方法详解

    2022-01-15 14:25:41
  • 用Python实现QQ游戏大家来找茬辅助工具

    2021-09-10 16:28:44
  • python Flask 装饰器顺序问题解决

    2022-09-30 09:16:42
  • python实现126邮箱发送邮件

    2022-07-29 23:37:56
  • Python操作Mysql实例代码教程在线版(查询手册)

    2024-01-24 17:07:44
  • Python实现Appium端口检测与释放的实现

    2023-03-08 08:34:23
  • 在ASP中使用SQL语句之12:连接

    2009-04-23 18:27:00
  • 分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]

    2024-04-25 13:09:11
  • HTML 5 Video概述

    2010-06-23 18:56:00
  • Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    2024-01-17 10:23:24
  • JavaScript的陷阱

    2008-10-28 19:52:00
  • 浅谈Selenium 控制浏览器的常用方法

    2022-03-30 04:40:33
  • 教你使用Python 的 Template 类生成文件报告

    2022-01-27 04:52:24
  • layui实现显示数据表格、搜索和修改功能示例

    2024-04-18 10:01:46
  • asp之家 网络编程 m.aspxhome.com