2018-09-19 組件

組件(component):

組件化開(kāi)發(fā) 組件可以擴(kuò)展 HTML 元素,封裝可重用的代碼 ,可以被連續(xù)調(diào)用。
分為
1.全局組件
2.局部組件
注: 組件名不可以使用已經(jīng)存在的html元素 組件中的data數(shù)據(jù)是一個(gè)函數(shù),并且要有一個(gè)返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
<my-component></my-component>
</div>
    <script src="js/vue.js"></script>
    <script>
        Vue.component("my-component",{
            template:`
                <ul>
                    <li>首頁(yè)</li>
                    <li>關(guān)于</li>
                    <li>我們</li>
                </ul>
            `
        })
        new Vue({
            el:'#app',
           /* components:{
                "my-component":{
                    template:`
                           <p>你好</p>
                    `
                }
            }*/
        })
    </script>
</body>

</html>
q.png

組件的嵌套

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <my-father></my-father>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component("my-father",{
        template:`
             <div>
                 <h1>Hello</h1>
                 <my-child ></my-child>
             </div>
        `
    })

    Vue.component("my-child",{
        template:`
             <p>你好</p>
        `
    })
    new Vue({
       el:"#app" ,
    })
</script>
</body>
</html>

把子元素嵌套在父元素中 顯示出父元素與子元素的值

w.png

組件中data是一個(gè)函數(shù),并且要有一個(gè)返回值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <m></m>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component("m",{
        template:`
            <div>
                <h1>{{mess}}</h1>
                <button @click="add">點(diǎn)擊</button>
            </div>
        `,
        data:function(){
            return{
                mess:"你好"
            }
        },
        methods:{
            add:function(){
                alert("aa")
            }
        }
    })
    new Vue({
        el:"#app",
    })
</script>
</body>
</html>
R.png

組件的嵌套父給子傳(用prop屬性)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <my-father></my-father>
</div>
<script src="js/vue.js"></script>
<script>
    Vue.component("my-father",{
        template:`
             <div>
                 <my-tit v-bind:tit='title'></my-tit>
                     <my-fruit v-bind:fruList='list'></my-fruit>
             </div>
        `,
        data:function(){
            return{
                list:['apple','pear','banana'],
                title:'水果列表'
            }
        }
    })

    Vue.component('my-tit',{
        props:['tit'],
        template:`
                 <h2>{{tit}}</h2>
               `
    })


    Vue.component('my-fruit',{
        props:['fruList'],
        template:`
                <ul>
                    <li v-for="value in fruList">{{value}}</li>
                </ul>
             `
    })

    new Vue({
        el:"#app" ,
    })
</script>
</body>
</html>
O.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容