1. 程式人生 > 其它 >父子傳值!程式碼詳解

父子傳值!程式碼詳解

技術標籤:vue傳值vue

父傳子:

<body>
    <div id='app'>
        <songname title="我是父元件傳來的"> </songname>
        <songname></songname>
        <songname :title="title"></songname>
    </div>
    <template id="login">
        <
div> 登入元件 父元件傳值:{{title}} </div> </template> <script> // 定義元件 Vue.component("songname", { //元件名 template: "#login", //元件id props: { // 1、 指定資料型別 title:string // 2、指定多種資料型別 // title: [
String, Number], // 3.指定預設資料 title: { type: String, default: "課程標題", }, } }) </script> <script> const vm = new Vue({ el: '#app', data: {
title: "我是父元件傳來的動態屬性繫結" } }) </script>

子傳父:

<body>
    <!-- 父 -->
    <div id='app'>
        <!-- 子 -->
        <sonname @father="fatherchange"></sonname>
        {{sondata}}
    </div>
    <template id="login">
        <div>
            登入元件
            父元件傳值:{{title}}
            <button @click="addDataTofather"> 點我幹大事</button>

        </div>
    </template>
    <script>
        Vue.component("sonname", {
            template: "#login",
            props: {
                // 1.指定資料型別
                // title:String
                // 2指定多種資料型別
                // title:[String,Number]
                // 3指定預設資料
                // title:{
                //     type:String,
                //     default:"課程標題"
                // },
                title: {
                    type: [String, Number],
                    default: "課程標題"
                }

            },
            methods: {
                addDataTofather() {

                    this.$emit("father", "傳過來的子元件資料")
                }
            },
        })

    </script>
    <script>
        const vm = new Vue({
            el: '#app',
            data: {
                title: "俺是父元件傳來的動態屬性繫結",
                sondata: ""
            },
            methods: {
                fatherchange(data) {
                    console.log(data);
                    this.sondata = data
                }
            },
        })
    </script>