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 }}

    參考文章

    VUE模塊

    props組件 - Vue3新手基礎教程

    2022-8-18 20:06:14

    VUE模塊

    v-on事件處理 - Vue3新手基礎教程

    2022-8-19 16:02:20

    ??
    Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
    無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
    0 條回復 A文章作者 M管理員
      暫無討論,說說你的看法吧
    ?
    個人中心
    購物車
    優惠劵
    今日簽到
    有新私信 私信列表
    搜索
    主站蜘蛛池模板: 无码人妻一区二区三区免费看| av无码精品一区二区三区四区| 伊人精品视频一区二区三区| 无码人妻精品一区二| 在线精品亚洲一区二区小说| 一本大道在线无码一区| 久久无码人妻精品一区二区三区| 亚洲欧美一区二区三区日产| 在线精品国产一区二区三区| 福利一区二区三区视频午夜观看| 国产日韩一区二区三区在线播放| 日本一区二区免费看| 中文字幕一区二区在线播放 | 日本夜爽爽一区二区三区| 国产一区二区三区在线2021| 色多多免费视频观看区一区| 色婷婷亚洲一区二区三区| 国产高清一区二区三区 | 日本精品视频一区二区| 亚洲国产欧美一区二区三区| 亚洲国产成人精品无码一区二区| 无码国产精品一区二区免费式芒果 | 2021国产精品视频一区| 日韩精品无码一区二区三区不卡| 丰满爆乳一区二区三区| 日韩电影一区二区三区| 精品一区二区久久久久久久网站| 伦理一区二区三区| 国产精品女同一区二区| 国产一区二区三区在线影院| 国产伦理一区二区| 蜜桃无码一区二区三区| 国产精品一区视频| 爆乳无码AV一区二区三区 | 日本一区二区三区精品中文字幕| 成人影片一区免费观看| 日韩精品一区二区三区四区| 99精品国产一区二区三区不卡| 无码乱码av天堂一区二区| 无码aⅴ精品一区二区三区| 国产一区二区三区内射高清|