Vue Component 父子組件及組件選項


先來點乾貨

想學習Vue 推薦網站


我也是剛開始學習,因爲要想學習Weex 框架就必須學習 Vue ,我也是在學習的路上~~~

記一次學習到了Component 組件之 父子組件遇到的問題


1.在設置屬性的時候發現v-bind 指令使用的時候報錯,原來子組件的想要綁定data數據中的東西需要
在父控件中設置數據,如果再創建的Vue 對象中設置data 會報錯而不顯示,

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>components</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>

<body>
    <div id="component1">
        <Con :local='locals'></Con>
    </div>
    <script>
        var cityComponent = {
            template: `
                <p>{{cityProps}}</p>
            `,
            props: ['cityProps']
        };
        var contentComponent = {
            components: {
                'city': cityComponent
            },
            data: () => {
                return {
                    citys: '山東'
                }
            },
            template: `
                    <div>
                        <p>{{local}}</p>
                        <city :cityProps='citys'></city>
                    </div>
                `,
            props: ['local']
        };
        new Vue({
            el: '#component1',
            data: {
                locals: '中國',
            },
            components: {
                "Con": contentComponent
            }
        })
    </script>
</body>


</html>

2 . demo實現選項卡切換效果

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Component4</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app" v-on:click='change'>
        <component :is="who" :com='who'></component>
    </div>
</body>
<script>
    var com1 = {
        template: `
            <div><button  style='background-color:red'>{{com}}</button></div>
        `,
        props: ['com']
    };
    var com2 = {
        template: `
            <div><button   style='background-color:green'>{{com}}</button></div>
        `,
        props: ['com']
    };
    var com3 = {
        template: `
            <div><button  style='background-color:pink'>{{com}}</button></div>
        `,
        props: ['com']
    }
    var coms = new Vue({
        el: '#app',
        data: {
            who: 'com1'
        },
        methods: {
            change: () => {
                if (coms.who == 'com1') {
                    coms.who = 'com2';
                } else if (coms.who == 'com2') {
                    coms.who = 'com3';
                } else {
                    coms.who = 'com1';
                }
            }
        },
        components: {
            "com1": com1,
            "com2": com2,
            "com3": com3,
        }
    })
</script>

</html>
發佈了96 篇原創文章 · 獲贊 74 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章