首页 > 其他 > 详细

VUE父子传值的问题

时间:2020-03-25 22:38:31      阅读:73      评论:0      收藏:0      [点我收藏+]

1. 父子传值 props

所有的 props 都是单向往下的,父组件 property 更新会影响子组件的,反过来则不会;另外,每次父组件中对应属性发生改变,子组件中的所有 props 都会被更新为最新的值。所以在子组件中,不应该对 props 进行更改

<div id="app">
    <p>{{ message }}</p>
    <input type="text" v-model="message">
    <child :msg="message"></child>
</div>
<template id="child">
    <p>从父组件传来的msg: {{ msg }}</p>
</template>
<script>
    Vue.component(‘child‘, {
        template: ‘#child‘,
        props: [‘msg‘]
    })
    new Vue({
        el: ‘#app‘,
        data: {
            message: ‘hello props‘
        }
    })
</script>

在线demo

2. 子组件向父组件传递数据 自定义事件

使用 v-on
所有Vue实例都实现了Events接口,即: 通过 $on(eventName) 监听事件 ; 通过 $emit(eventName) 触发事件

<div id="count">
    <p>{{ total }}</p>
    <count-btn v-on:add="incrementTotal"></count-btn>
    <count-btn v-on:add="incrementTotal"></count-btn>       
</div>
<template id="child">
    <div>
        <button @click="add">{{ count }}</button>
    </div>
</template>
<script>
    Vue.component(‘count-btn‘, {
        template: ‘#child‘,
        data () {
            return {
                count: 0
            }
        },
        methods: {
            add () {
                this.count++
                this.$emit(‘add‘)
            }
        }
    })
    new Vue({
        el: ‘#count‘,
        data: {
            total: 0
        },
        methods: {
            incrementTotal () {
                this.total++
            }
        }
    })
</script>




VUE父子传值的问题

原文:https://www.cnblogs.com/dillonmei/p/12570662.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!