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,雖然父組件傳過來的值改變了,但是子組件不會自動更新。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM