Vue2.0入门系列——父子组件间通信

1、子组件更新,父组件不变

点击“按钮”按钮,子组件数据被修改,父组件数据不变

 =========>>>>>> 

项目源代码,

<head>

<meta charset="UTF-8">

<title>v2.0父子组件通信</title>

<script src="./vue.js"></script>

<script>

window.onload=function(){

new Vue({

el: ‘#box‘,

data: {

aa: ‘我是父组件中的数据‘

},

components: {

‘child-com‘: {

props: [‘msg‘],  //接收父组件传递过来的信息

template: ‘#child‘,

methods:{

change(){

this.msg=‘被修改‘

}

}

}

}

});

};

</script>

<!--子组件修改不能改变父组件的修改-->

</head>

<body>

<template id="child">

<div>

<h3>我是子组件</h3>

<input type="button" value="按钮" @click="change">

<strong>{{msg}}</strong>

</div>

</template>

<div id="box">

父级: -> {{ aa }}

<child-com :msg="aa"></child-com>

</div>

</body>

2、子组件更新,父组件随之更新

点击“按钮”按钮,父子组件均数据被修改,

<head>

<meta charset="UTF-8">

<title>v2.0父子组件通信</title>

<script src="./vue.js"></script>

<script>

window.onload=function(){

new Vue({

el: ‘#box‘,

data: {

giveData:{

aa: ‘我是父组件中的数据‘

}

},

components: {

‘child-com‘: {

props: [‘msg‘],  //接收主组件传递过来的信息

template: ‘#child‘,

methods:{

change(){

//this.msg=‘被修改‘

this.msg.aa=‘被修改‘

}

}

}

}

});

};

</script>

<!--子组件修改不能改变父组件的修改-->

</head>

<body>

<template id="child">

<div>

<h3>我是子组件</h3>

<input type="button" value="按钮" @click="change">

<strong>{{msg.aa}}</strong>

</div>

</template>

<div id="box">

父级: -> {{ giveData.aa }}

<child-com :msg="giveData"></child-com>

</div>

</body>

原文地址:https://www.cnblogs.com/sunnyyangwang/p/10286601.html

时间: 2024-08-11 05:45:50

Vue2.0入门系列——父子组件间通信的相关文章

Vue2.0 实战项目(五) 组件间通信的方法

Vue组件之间通信分为三种情况:父组件向子组件通信.子组件向父组件通信.兄弟组件间通信. 一.父组件向子组件通信 通过props可以将值传递给子组件 <!-- 父组件 --><template> <div id="app"> <!-- 父子组件间通信 --> <child :message="toChildMsg"></child> </div> </template>

Vue2.x中的父子组件相互通信

原理 在 Vue.js 中,父子组件的关系可以总结为 props down, events up . 父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息.看看它们是怎么工作的. 业务场景 这里指的是直接父子级关系的通信 美女(子组件)将消息发送给大群(父组件) 大群(父组件)收到美女发送的消息后再回个信息给美女(子组件) 父组件 template <template> <div> <p>群消息girl:</p> <

非父子组件间通信

非父子组件之间的通信,可以通过一个空的 Vue 实例作为中央事件总线(事件中心),用他来触发事件和监听事件. 在这里,如果是工作中的新手看了官网的例子直接上手写,会有些发懵.这个作为事件总线空的 Vue 实例我该写哪里去?因为工作中我们的组件都是互相独立的,不可能写一起的,作用域是不同的,所以需要稍作调整 一.在 main.js 中初始化根 Vue 之前,添加一个 data 对象,内写入一个名为 Event 的空 Vue 对象,也就是中央事件总线 new Vue({ el: '#app', da

vue非父子组件间通信

有时候非父子关系的组件也需要通信.在简单的场景下,使用一个空的Vue实例作为中央事件总线: 有时候非父子关系的组件也需要通信.在简单的场景下,使用一个空的 Vue 实例作为中央事件总线: var bus = new Vue() // 触发组件 A 中的事件 bus.$emit('id-selected', 1) // 在组件 B 创建的钩子中监听事件 bus.$on('id-selected', function (id) { // ... }) 在更多复杂的情况下,你应该考虑使用专门的 状态管

React独立组件间通信联动

React是现在主流的高效的前端框架,其官方文档 http://reactjs.cn/react/docs/getting-started.html 在介绍组件间通信时只给出了父子组件间通信的方法,而没有给出独立组件间通信的解决方案.这里我介绍一种不错的实现方式——signals. 第一步,我们要建立两个简单的react组件——一个进度条和一个输入框. 组件——进度条: var ProcessBar=React.createClass({ getInitialState:function(){

父子组件间的传值

父子组件间通信 父组件-->子组件 1.父组件通过给子组件添加属性给子组件传值,子组件通过props来接受. 2但是要在属性前加“:”,即使用v-bind指令,才能使属性值是js代码,不然就是字符串. 3.单项输出流.即子组件不允许修改父组件传递的值,只能使用,不能修改. 父组件通过属性向子组件传值时,如果传递的是引用型的值,这时候子组件对父组件传递的值进行修改可能会影响其他子组件对这个引用类型值的使用. 解决办法:子组件在data项中新赋值父组件的变量,操作新的变量即可. 子组件-->父组件

第四节:Vue表单标签和组件的基本用法,父子组件间的通信

vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"&

Vue入门七、父子组件间通讯

一.父子组件通讯 父传子:1.父用子的时候通过属性传递2.子要声明props:['属性名']接收3.子组件template中直接用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script type="

vue组件间通信六种方式(完整版)

vue组件间通信六种方式(完整版) 前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系: 如上图所示,A 和 B.B 和 C.B 和 D 都是父子关系,C 和 D 是兄弟关系,A 和 C 是隔代关系(可能隔多代). 针对不同的使用场景,如何选择行之有效的通信方式?这是我们所要探讨的主题.本文总结了vue组件间通信的几种方式,如props.$emit/$on.vuex.$parent / $chil