Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法
一,子组件数据跟着父组件改变
父组件的代码
<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<!--<HelloWorld msg="Welcome to Your Vue.js App"/>-->
父组件的值<input type="text" v-model="parentVal">
<div>
<child-test :inputData="parentVal"></child-test>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
import ChildTest from '@/components/child-test.vue'
export default {
name: 'home',
components: {
HelloWorld,ChildTest
},
data() {
return {
parentVal: 100,
}
},
}
</script>
子组件的代码如下:
<template>
<div class="child">
子组件<input type="text" v-model="childVal">
</div>
</template>
<script>
export default {
name: 'child',
props: {
inputData: {
}
},
data() {
return {
childVal: this.inputData
}
},
watch: {
inputData(newVal){
this.childVal = newVal;
}
}
}
</script>
总结:父组件通过props传值给子组件,子组件通过watch监听父组件传过来的值改变来重新更新子组件的值。以此来达到子组件的值跟随父组件的值改变。如果不使用watch,虽然父组件传过来的值改变了,但是子组件不会自动更新。
二,父组件数据跟着子组件改变
父组件代码
<template>
<div class="home">
<img alt="Vue logo" src="../assets/logo.png">
<!--<HelloWorld msg="Welcome to Your Vue.js App"/>-->
父组件的值<input type="text" v-model="parentVal">
<div>
<child-test @childValInput="childVal" :inputData="parentVal"></child-test>
</div>
</div>
</template>
<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'
import ChildTest from '@/components/child-test.vue'
export default {
name: 'home',
components: {
HelloWorld,ChildTest
},
data() {
return {
parentVal: 100,
}
},
methods: {
childVal(val) {
this.parentVal = val;
}
}
}
</script
子组件代码
<template>
<div class="child">
子组件<input type="text" v-model="childVal">
</div>
</template>
<script>
export default {
name: 'child',
data() {
return {
childVal: 10
}
},
watch: {
childVal(newVal){
this.$emit('childValInput',this.childVal)
}
}
}
</script>
总结:父组件中要@方法来接收子组件传递的emit,使用时要在methods中定义一下来使用。
转载自:https://juejin.im/post/5c71584e6fb9a049d4427063
Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法的更多相关文章
- 父组件向子组件传值时,值已经传过来却没有触发子组件的watch监听,解决~
需求: 父组件像封装的子组件传值 (父组件属性传值,子组件props接受) 子组件接受后经过处理回显页面; 预想:子组件接受值 , 经过watch监听,在监听中处理数据,回显数据; 问题:子组件 ...
- Nuxt.js 如何在 asyncData中 请求数据 ,并将拿到的数据传给子组件
说明:同接口请求一样,也可以进行数据的处理:return 中 左侧的变量 可以直接拿到在页面上使用,也可以传递给子组件 下面再给出一段代码,方便觉得有用的.却又不想手敲的朋友们: async as ...
- vue子组件数据跟着父组件改变
父组件的代码 <template> <div class="home"> <img alt="Vue logo" src=&quo ...
- vue中子组件调用父组件里面的数据和方法 父组件调用子组件的数据和方法
1.子组件直接调用父组件的数据和方法 在父组件father,vue <template> <div> <!-- 父组件里面的数据 --> <p>父组件里 ...
- vue 解决双向绑定中 父组件传值给子组件后 父组件值也跟着变化的问题
说明: 近日开发中碰见一个很诡异的问题, 父组件动态的修改对象 data 中的值, 然后将这个对象 data 传给子组件, 子组件拿到后将 data 中的值 乘以 100 ,发现父组件中的值也跟着变 ...
- vue 实现父组件和子组件之间的数据双向绑定
前言:vue 实现父组件给子组件传值,然后子组件可以修改回父组件的值.vue 的 prop 默认是单向数据绑定,但是偶尔需要双向绑定,这时就需要知道如何才能让子组件的数据修改时影响到父组件的数据.转载 ...
- Vue 编程之路(三)—— Vue 中子组件在父组件的 v-for 循环里,父组件如何调取子组件的事件
(标题的解决方案在第二部分) 最近公司的一个项目中使用 Vue 2.0 + element UI 实现一个后台管理系统的前端部分,属于商城类型. 一.前期思路: 其中在“所有订单”页面,UI 给的设计 ...
- vue中父组件传数据给子组件
父组件: <template> <parent> <child :list="list"></child> //在这里绑定list对 ...
- vue父组件如何向子组件中传递数据?
原文地址 props传参 父组件: <template> <parent> <child :list="list"></child> ...
随机推荐
- Linux系统平台调优
- 毕设问题(2) fastjson 的过滤器使用(SSH hibernate)以及转换对象出现 $ref
毕业设计,用SSH框架,但是想要做出异步请求数据的效果,使用了ajax方式,其中数据传递的类型为json.ajax使用用的jQuery的ajax.其实struts里也支持ajax功能,但是我觉得用太多 ...
- MySQL04-- 版本区别及管理
目录 MySQL版本区别及管理 一.MySQL5.6与MySQL5.7安装的区别 二.MySQL用户权限管理 三.MySQL连接管理 四.MySQL启动关闭流程 五.MySQL实例初始化配置 六.My ...
- CentOS 6.5之SSH 免密码登录
0.说明 这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机.目标是实现A.B两台主机分别能够通过ssh免密码登录到对方主机.不同主机的配置过程一样,这里介绍A主机的配置过程. 事先 ...
- gps位置坐标转百度坐标
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- vue-ivew input 框 回车搜索功能
1. 添加事件 <FormItem prop="> <Input type="text" v-model="formInline.produc ...
- 【串线篇】SQL映射文件select简单查询标签
一.参数(Parameters)传递 单个参数 基本类型:取值#{hahaha}随便写 多个参数 <!-- public Employee getEmpById(Integer id,Str ...
- AGC016题解
呼我竟然真的去刷了016QwQ[本来以为就是个flag的233] 感觉AGC题目写起来都不是很麻烦但是确实动脑子qvq[比较适合训练我这种没脑子选手] 先扔个传送门:点我 A.Shrinking 题意 ...
- spark的知识的链接
IDEA 创建scala spark的Mvn项目:https://blog.csdn.net/u014646662/article/details/84618032 Spark详解03Job 物理执行 ...
- network ---边赋予权重
有向图和无向图都可以给边赋予权重,用到的方法是add_weighted_edges_from,它接受1个或多个三元组[u,v,w]作为参数,其中u是起点,v是终点,w是权重.例如: G.add_wei ...