VUE控制臺報錯:Uncaught TypeError: app.component is not a function

    問題描述

    vue在根組件上添加 子組件時,報錯?Uncaught TypeError: app.component is not a function

    問題代碼

        <script src="https://unpkg.com/vue@next"></script>
        <div id="app">
            <h1>{{ msg }}</h1>
            <button @click="add">計數器:{{counte}}</button>
            <site-name></site-name>
        </div>
        <script>
            //父組件
            const appRoot = {
                data() {
                    return {
                        msg: "個人基本信息",
                        counte: 1,
                    }
                },
                methods: {
                    add() {
                        this.counte += 1;
                    }
    
                },
            }
    
    
    
            //子組件
            app.component('site-name', {
                props: {
                    //年齡
                    "age": {
                        type: Number,
                        required: true,
                        default: "18",
                    }
                },
    
                template: `<h2>年齡:{{ age }}</h2>`,
            })
            app = Vue.createApp(appRoot);
            app.mount('#app');
    
        </script>
    VUE控制臺報錯:Uncaught TypeError: app.component is not a function

    問題原因

    1.沒有搞清楚vue應用中組件的加載過程,添加子組件的順序錯誤

    解決方法

    1.vue應用組件加載順序

        a.調用vue.createApp方法添加根組件創建應用
    app=Vue.createApp(appRoot);
        b.在應用中添加子組件
            //子組件
            app.component('site-name', {
                props: {
                    //年齡
                    "age": {
                        type: Number,
                        required: true,
                        default: "18",
                    }
                },
    
                template: `<h2>年齡:{{ age }}</h2>`,
            })


    c.將應用掛載在html頁面中

    app.mount("#app");


    2.解決方法:重新修改代碼書寫次序

        <script src="https://unpkg.com/vue@next"></script>
        <div id="app">
            <h1>{{ msg }}</h1>
            <button @click="add">計數器:{{counte}}</button>
            <site-name></site-name>
        </div>
        <script>
            //父組件
            const appRoot = {
                data() {
                    return {
                        msg: "個人基本信息",
                        counte: 1,
                    }
                },
                methods: {
                    add() {
                        this.counte += 1;
                    }
    
                },
            }
    
            //我調整了這行代碼的順序
            app = Vue.createApp(appRoot);
    
            //子組件
            app.component('site-name', {
                props: {
                    //年齡
                    "age": {
                        type: Number,
                        required: true,
                        default: "18",
                    }
                },
    
                template: `<h2>年齡:{{ age }}</h2>`,
            })
    
            app.mount('#app');
    
        </script>

    瀏覽器渲染效果

    {{ msg }}

    參考文章

    給TA贊賞
    共{{data.count}}人
    人已贊賞
    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    ?
    購物車
    優惠劵
    搜索
    主站蜘蛛池模板: 国产精品一区二区三区久久| 成人乱码一区二区三区av| 日韩一区精品视频一区二区| 男人的天堂av亚洲一区2区| 中文字幕无码一区二区三区本日| 亚洲av乱码一区二区三区| 中文字幕精品一区二区三区视频| 久久久国产精品无码一区二区三区 | 国产av一区二区精品久久凹凸| 久久精品国产免费一区| 精品人妻少妇一区二区| 一区二区三区四区在线视频| 免费一区二区视频| 日韩高清一区二区三区不卡| 蜜桃AV抽搐高潮一区二区| 无码av免费毛片一区二区| 精品一区高潮喷吹在线播放| 精品一区二区三区东京热| 一区二区三区视频在线| 亚洲欧洲一区二区| 无码av免费一区二区三区试看| 国产日韩AV免费无码一区二区| 变态拳头交视频一区二区| 国产在线aaa片一区二区99| 中文字幕一区二区在线播放| 内射女校花一区二区三区| 久久精品人妻一区二区三区| 国产一区在线视频| 中文人妻无码一区二区三区| 国产精品区一区二区三在线播放 | 3d动漫精品啪啪一区二区中文| 另类一区二区三区| 亚洲午夜电影一区二区三区| 精品香蕉一区二区三区| 在线观看视频一区二区| 国产SUV精品一区二区88L| 一级特黄性色生活片一区二区| 久久精品国产一区二区三区| 人妻久久久一区二区三区| 亚洲爆乳精品无码一区二区| 视频在线一区二区|