這篇文章給大家分享的是有關(guān)Vue.js實(shí)現(xiàn)微信公眾號(hào)菜單編輯器功能的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
江北ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!創(chuàng)建一個(gè)vue實(shí)例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="https://cdn.bootcss.com/vue/2.5.9/vue.js"></script> </head> <body> <div class="content" > <!-- vue實(shí)例掛載的DOM元素 --> <div id="app-menu"> <!-- 菜單預(yù)覽界面 --> <div class="weixin-preview"></div> <!-- 菜單編輯界面 --> <div class="weixin-menu-detail"></div> </div> </div> <script> var app = new Vue({ el: '#app-menu',//掛載到對(duì)應(yīng)的DOM元素 data: { weixinTitle: 'Vue.js公眾號(hào)菜單', //菜單對(duì)象 menu: { "button": [ { "name": "主菜單1", "sub_button": [] }, { "name": "主菜單2", "sub_button": [] }, { "name": "主菜單3", "sub_button": [ { "name": "子菜單1" }] }] }, selectedMenuIndex:'',//當(dāng)前選中菜單索引 selectedSubMenuIndex:'',//當(dāng)前選中子菜單索引 }, methods: { } }) </script> </body> </html>
將菜單數(shù)據(jù)渲染到模版上
這里使用v-if和v-for將數(shù)據(jù)渲染到模版上,最多會(huì)有3個(gè)主菜單以及每個(gè)主菜單最多會(huì)有5個(gè)子菜單。
<div class="weixin-preview"> <div class="weixin-hd"> <div class="weixin-title">{{weixinTitle}}</div> </div> <div class="weixin-bd"> <ul class="weixin-menu"> <!-- 這里使用v-for開(kāi)始循環(huán)主菜單 --> <li v-for="(btn,i) in menu.button" class="menu-item"> <div class="menu-item-title"> <span>{{ btn.name }}</span> </div> <ul class="weixin-sub-menu"> <!-- 這里使用v-for開(kāi)始循環(huán)主菜單下的子菜單 --> <li v-for="(sub,i2) in btn.sub_button" class="menu-sub-item"> <div class="menu-item-title"> <span>{{sub.name}}</span> </div> </li> <!-- 這里使用v-if 判斷子菜單小于5個(gè),則添加按鈕來(lái)添加子菜單 --> <li v-if="btn.sub_button.length<5" class="menu-sub-item"> <div class="menu-item-title"> <i class="icon14_menu_add"></i> </div> </li> </ul> </li> <!-- 這里使用v-if 判斷主菜單小于3個(gè),則添加按鈕來(lái)添加主菜單 --> <li class="menu-item" v-if="menu.button.length<3"> <i class="icon14_menu_add"></i></li> </ul> </div> </div>
給vue實(shí)例添加方法
在vue實(shí)例中給methods對(duì)象中添加我們自定義的方法
methods: { //選中主菜單 selectedMenu:function (i) { this.selectedSubMenuIndex = '' this.selectedMenuIndex = i }, //選中子菜單 selectedSubMenu:function (i) { this.selectedSubMenuIndex = i }, //選中菜單級(jí)別 selectedMenuLevel: function () { if (this.selectedMenuIndex !== '' && this.selectedSubMenuIndex === '') { //主菜單 return 1; } else if (this.selectedMenuIndex !== '' && this.selectedSubMenuIndex !== '') { //子菜單 return 2; } else { //未選中任何菜單 return 0; } }, //添加菜單 //參數(shù)level為菜單級(jí)別,1為主菜單、2為子菜單 addMenu:function (level) { if (level == 1 && this.menu.button.length < 3) { this.menu.button.push({"name": "菜單名稱", "sub_button": [] }) this.selectedMenuIndex = this.menu.button.length - 1 this.selectedSubMenuIndex = '' } if (level == 2 && this.menu.button[this.selectedMenuIndex].sub_button.length < 5) { this.menu.button[this.selectedMenuIndex].sub_button.push({ "name": "子菜單名稱" }) this.selectedSubMenuIndex = this.menu.button[this.selectedMenuIndex].sub_button.length - 1 } } }
給菜單綁定方法
當(dāng)點(diǎn)擊菜單觸發(fā)selectedMenu方法,點(diǎn)擊添加按鈕觸發(fā)添加addMenu方法。使用v-on來(lái)監(jiān)聽(tīng)事件,它的縮寫是@
監(jiān)聽(tīng)點(diǎn)擊事件@click ,為了防止子菜單點(diǎn)擊事件冒泡的主菜單,則使用.stop事件修飾符來(lái)阻止冒泡@click.stop
使用v-bind:class來(lái)添加切換菜單選中時(shí)的class。:class為縮寫
<ul class="weixin-menu" id="weixin-menu" > <!-- 判斷如果selectedMenuIndex是當(dāng)前點(diǎn)擊的主菜單索引則添加current樣式 --> <li v-for="(btn,i) in menu.button" class="menu-item" :class="{current:selectedMenuIndex===i&&selectedMenuLevel()==1}" @click="selectedMenu(i)"> <div class="menu-item-title"> <span>{{ btn.name }}</span> </div> <!-- v-show來(lái)切換是否顯示 這里如果選中了主菜單則子菜單彈出 --> <ul class="weixin-sub-menu" v-show="selectedMenuIndex===i"> <li v-for="(sub,i2) in btn.sub_button" class="menu-sub-item" :class="{current:selectedSubMenuIndex===i2&&selectedMenuLevel()==2}" @click.stop="selectedSubMenu(i2)"> <div class="menu-item-title"> <span>{{sub.name}}</span> </div> </li> <li v-if="btn.sub_button.length<5" class="menu-sub-item" @click.stop="addMenu(2)"> <div class="menu-item-title"> <i class="icon14_menu_add"></i> </div> </li> </ul> </li> <li class="menu-item" v-if="menu.button.length<3" @click="addMenu(1)"> <i class="icon14_menu_add"></i> </li> </ul>
感謝各位的閱讀!關(guān)于“Vue.js實(shí)現(xiàn)微信公眾號(hào)菜單編輯器功能的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)標(biāo)題:Vue.js實(shí)現(xiàn)微信公眾號(hào)菜單編輯器功能的示例分析-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://m.rwnh.cn/article16/ddodgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、微信小程序、自適應(yīng)網(wǎng)站、企業(yè)建站、微信公眾號(hào)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容