Vue創(chuàng)建組件的三種方式

1、第一種:

/* 第一種方式創(chuàng)建組件 */
/* 第一種方式創(chuàng)建組件 */
const com = Vue.extend({
    template:'<h1>這是一個模板組件</h1>'
});
Vue.component("myView",com);

<!-- 第一種方式展示組件 -->
<my-view></my-view>

2、第二種

/* 第二種方式創(chuàng)建組件 */
Vue.component("myAction",{
    template:'<h1>{{msg}}</h1>',
    data:function(){
        return {msg:'這是一個action組件'}
    }
})
<!-- 第二種方式展示組件 -->
<my-action></my-action>

3、第三種

/* 第三種方式創(chuàng)建組件 */
Vue.component('myLive',{
    template:'#temp',
    data:function() {
        return {msgg:'這是第三種方式創(chuàng)建組件的'}
    }
})
<!-- 第三種方式創(chuàng)建組件的模板 -->
<template id='temp'>
        <!-- 必須要有一個根標(biāo)簽包住,和前兩種是一致的 -->
    <div>
        <h1>
            {{msgg}}
        </h1>
    </div>
</template>
<!-- 第三種方式創(chuàng)建三種方式 -->
<my-live></my-live>

4、測試代碼

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <!-- 第一種方式展示組件 -->
            <my-view></my-view>
            <!-- 第二種方式展示組件 -->
            <my-action></my-action>
            <!-- 第三種方式創(chuàng)建三種方式 -->
            <my-live></my-live>
            <!-- 私有組件不生效 -->
            <my-x></my-x>
        </div>
        
        <div id="app1">
            <my-action></my-action>
            <!-- 私有組件生效 -->
            <my-x></my-x>
        </div>
        
        <!-- 第三種方式創(chuàng)建組件的模板 -->
        <template id='temp'>
            <!-- 必須要有一個根標(biāo)簽包住,和親啊兩種是一致的 -->
            <div>
                <h1>
                    {{msgg}}
                </h1>
            </div>
        </template>
    </body>
    <script type="text/javascript">
        /* 第一種方式創(chuàng)建組件 */
        const com = Vue.extend({
            template:'<h1>這是一個模板組件</h1>'
        });
        Vue.component("myView",com);
        /* 第二種方式創(chuàng)建組件 */
        Vue.component("myAction",{
            template:'<h1>{{msg}}</h1>',
            data:function(){
                return {msg:'這是一個action組件'}
            }
        })
        /* 第三種方式創(chuàng)建組件 */
        Vue.component('myLive',{
            template:'#temp',
            data:function() {
                return {msgg:'這是第三種方式創(chuàng)建組件的'}
            }
        })
        const vm = new Vue({
            el:'#app',
            data:{
            },
            methods:{
            }
        })
        
        
        const vm1 = new Vue({
            el:'#app1',
            data:{
            },
            methods:{
            },
            components:{
                "myX":{
                    template:"<h1>{{msgx}}</h1>",
                    data:function() {
                        return {msgx:'這是我的私有組件'}
                    }
                }
            }
        })
    </script>
</html>

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

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