vue子组件数据变化同步到父组件中

方法:通过watch监听子组件数据变化

1.父组件中注册方法

<Child @getChildValue="getChildValue"></Child>

2.子组件中通过watch监听数据变化,数据变化时通过$emit来触发方法传参

<template>
    <div class="child">
        <p>子组件同步数据到父组件</p>
        <input type="text" v-model="childValue">
    </div>
</template>
<script>
export default {
    data(){
        return{
            childValue:‘‘
        }
    },
    watch: {
        childValue(val){
            this.$emit("getChildValue",{value:this.childValue})
        }
    },
}
</script>

原文地址:https://www.cnblogs.com/mmzuo-798/p/11607079.html

时间: 2024-08-12 08:43:14

vue子组件数据变化同步到父组件中的相关文章

vue - 父组件数据变化控制子组件类名切换

先说当时的思路和实现核心是父子组件传值和v-bind指令动态绑定class实现 1. 父组件引用.注册.调用子组件script中引用 import child from '../components/Child' export中注册 export default { name: 'Home', components: { child }, } template中调用(pug写法) child() 2. 父组件准备数据并处理 data() { return { classNames: ''; }

Vue的父子组件v-model双向绑定,父组件修改子组件中绑定的v-model属性

先来看下实现的效果,父组件中有个文本框,在点击下面按钮时弹出抽屉,抽屉里也有个文本框,文本框里的初始值要和父组件的文本框同步,并且修改抽屉里的文本框值时 父组件里的文本框值也要跟着改变 网上有大概三种方法 父组件调用子组件传值,子组件通过props接收父组件传来的值,并通过emit发送方法名和值,父组件根据传来的方法名定义方法接收值并进行赋值操作. Sync  这个没试过不了解 v-model  子传父: 父组件定义v-model,子组件中当数据更新时,向父组件emit一个input事件,将更新

父组件接收子组件事件的参数===子组件给父组件传值===子组件调用(绑定)父组件的方法

子组件调用(绑定)父组件的方法===父组件接收子组件事件的参数===子组件给父组件传值 就相当于父组件给子组件传递了一个方法,子组件触发这个方法,也就相当于父组件调用了这个方法 可以说是互相影响,数据双向绑定 子组件 <div @click="clickCell(参数)"> props:{ clickCell:{ type:Function, default: function(){} } } 父组件 <子组件名 :clickCell="dealClickC

初识vue 2.0(13):子组件使用watch监听父组件变化

子组件使用created或者mounted通常只能在组件初始化的时候,获取父组件传过来的props数据. 父组件props数据发生变化,子组件默认无法感知,因此需要手动实现子组件监听父组件变化的功能. 一般的值类型数据,可以直接使用watch监听: watch: { msg(newVal, oldVal){//对引用类型的值无效 console.info('value changed ', newVal) } } 引用类型,普通watch方法,无法监听到引用类型内部的变化. 解决此问题,可以在父

vue 单向数据流,不应该更改父组件传过来的数据

那么按照标题这样的话,就如同是 这样 data(){name:this.dataf}  this.dataf就是父组件的值  然后把这个值 相当于赋值给 name: this.dataf 然后更改组件里面的data 数据就好了 看例子 <body> <div id="app"> <h3>父组件中使用了count</h3> <p>{{count}}</p> <custom-component :count=&q

Vue评论案例--数据存放本地---联系子组件调用父组件方法(子组件点击发表-调用父组件更新评论列表)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

浅谈VUE,使用watch方法监听父组件传到子组件的数据。

props:['updateData'], data(){ return{ form: { _name:'', }, } }, 第一步接收数据: props:['updateData'] 第二步动态改变值: mounted(){ this.form._name = this.updateData._name; }, 第三步使用watch监听 updateData数据 watch:{ updateData: function (newVal ,oldVal){ //不能用箭头函数 this.for

子组件可以通过事件回调传递数据和操作到父组件

close = () => { const { maskBack } = this.props; if(maskBack){ maskBack() } } handMaskBack = () => { this.setState({ mask:false }) } { mask ? <Search maskBack={this.handMaskBack}></Search> : null } 原文地址:https://www.cnblogs.com/winyh/p/10

让一个小Div(子)在大Div(父)中垂直水平都居中

方法1: .parent {          width:800px;          height:500px;          border:2px solid #000;          position:relative;} .child {            width:200px;            height:200px;            margin: auto;              position: absolute;