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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章