vue組件化的實例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)vue組件化的實例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元吳堡做網(wǎng)站,已為上家服務(wù),為吳堡各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

全局組件

<!DOCTYPE html>
<html>
<head>
    <title>vue</title>
    <!-- <script src="./vue.js"></script> -->
    <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script>
</head>
<body>
    <div id="root">
        <input v-model="inputValue"/>
        <button @click="addTextFunc">提交</button>
        <ul>
            <todo-item v-bind:content="item" v-for="item in list"></todo-item>
        </ul>
    </div>
    <script>
        //全局組件
        Vue.component("TodoItem", {
            props: ["content"],
            template: "<li>{{content}}</li>"
        })
        var app = new Vue({
            el: "#root",
            data: {
                list: []
            },
            methods: {
                addTextFunc: function() {
                    this.list.push(this.inputValue)
                    this.inputValue = ""
                }
            }
        });
    </script>
</body>
</html>

局部組件

<!DOCTYPE html>
<html>
<head>
    <title>vue</title>
    <!-- <script src="./vue.js"></script> -->
    <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script>
</head>
<body>
    <div id="root">
        <input v-model="inputValue"/>
        <button @click="addTextFunc">提交</button>
        <ul>
            <todo-item v-bind:content="item" v-for="item in list"></todo-item>
        </ul>
    </div>
    <script>
        //局部組件
        var TodoItem = {
            props: ['content'],
            template: "<li>{{content}}</li>"
        }
        var app = new Vue({
            el: "#root",
            //注冊TodoItem組件
            components: {
                TodoItem: TodoItem //命名叫TodoItem,在實例中也叫TodoItem
            },
            data: {
                list: []
            },
            methods: {
                addTextFunc: function() {
                    this.list.push(this.inputValue)
                    this.inputValue = ""
                }
            }
        });
    </script>
</body>
</html>

子組件、父組件雙向傳遞數(shù)據(jù)

<!DOCTYPE html>
<html>
<head>
    <title>vue</title>
    <script src="./vue.js"></script>
    <!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
    <div id="root">
        <input v-model="inputValue"/>
        <button @click="addTextFunc">提交</button>
        <ul>
            "v-bind:"可以簡寫為":"
            <todo-item v-bind:content="item" v-bind:index="index" v-for="(item, index) in list" @delete="handleItemDelete"></todo-item>
        </ul>
    </div>
    <script>
        //局部組件
        var TodoItem = {
            props: ['content', 'index'], //要使用就要聲明(父組件給子組件傳值,子組件要接收!)
            //v-on:click的簡寫:@click
            template: "<li @click='handleItemClick'>{{content}}</li>",
            methods: {
                handleItemClick() {
                    //子組件向父組件傳值(觸發(fā)事件,父組件的@delete="handleItemDelete"在監(jiān)聽)
                    this.$emit("delete", this.index); //不但觸發(fā)delete時間,同時還把this.index作為參數(shù)給父組件
                }
            }
        }
        var app = new Vue({
            el: "#root",
            //注冊TodoItem組件
            components: {
                TodoItem: TodoItem //命名叫TodoItem,在實例中也叫TodoItem
            },
            data: {
                list: []
            },
            methods: {
                addTextFunc: function() {
                    this.list.push(this.inputValue)
                    this.inputValue = ""
                },
                handleItemDelete: function(index) { //此處接收傳過來的this.index
                    //全部刪除
                    //this.list = []
                    //刪除點擊的數(shù)據(jù)(標識為當前數(shù)據(jù)的index)
                    this.list.splice(index, 1)
                }
            }
        });
    </script>
</body>
</html>

關(guān)于“vue組件化的實例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標題:vue組件化的實例分析-創(chuàng)新互聯(lián)
文章URL:http://muchs.cn/article36/cdcosg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、App設(shè)計手機網(wǎng)站建設(shè)、小程序開發(fā)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)