VUE-父組件和子組件


1、父組件

        const cnp2 = Vue.extend({
            template: `
                <div>
                    <h2>我是構造器2</h2>
                    <cpn1></cpn1>
                </div>
            `,
            components: {
                cpn1: cnp1
            }
        })

2、子組件

        const cnp1 = Vue.extend({
            template: `
                <div>
                    <h2>我是構造器1</h2>
                </div>
            `
        })

解析:父組件和子組件的區分和形成。

當組件存在這種關系的時候,就存在父子關系--------當一個組件在另一個組件中注冊,這時候,被注冊的組件是子組件,包含着子組件的就是父組件 

*****完整代碼****

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<div id="app">
    <cpn2></cpn2>
</div>

<body>
    <script>
        const cnp1 = Vue.extend({
            template: `
                <div>
                    <h2>我是構造器1</h2>
                </div>
            `
        })
        const cnp2 = Vue.extend({
            template: `
                <div>
                    <h2>我是構造器2</h2>
                    <cpn1></cpn1>
                </div>
            `,
            components: {
                cpn1: cnp1
            }
        })
        let vm = new Vue({
            el: '#app',
            data: () => ({}),
            components: {
                cpn2: cnp2
            }
        })
    </script>
</body>

</html>

 3、全局組件和局部組件的語法糖寫法

優點:省去Vue.extend()的這種寫法,直接用一個對象代替

1、全局組件語法糖

        Vue.component('mycpn', {
            template: `
                <h2>全局組件,語法糖寫法</h2>
            `
        })

2、局部組件語法糖

            components: {
                mycpn: {
                    template: `
                    <h2>局部組件,語法糖寫法</h2>
                    `
                }
            }

*****完整代碼****

<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../js/vue.js"></script>
</head>
<div id="app">
    <mycpn />
</div>
<div id="app2">
    <mycpn />
</div>

<body>
    <script>
        Vue.component('mycpn', {
            template: `
                <h2>全局組件,語法糖寫法</h2>
            `
        })

        let vm = new Vue({
            el: '#app',
            components: {
                mycpn: {
                    template: `
                    <h2>局部組件,語法糖寫法</h2>
                    `
                }
            },

        })
        let vm2 = new Vue({
            el: '#app2'
        })
    </script>
</body>

</html>

 


免責聲明!

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



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