vue+iview的菜單與頁簽的聯(lián)動方式
vue+iview菜單與頁簽聯(lián)動
最近在使用vue+iview開發(fā)一個后臺管理類的系統(tǒng),希望做一個點擊左側(cè)菜單右側(cè)的頁簽與內(nèi)容都能相對應的改變。
但搞了好久的路由也沒有實現(xiàn)這個功能。
剛開始使用vue+iview不知道iview-admin可以直接拿來使用,布局之類的開箱即用,可是自己的demo已經(jīng)寫了好久不忍心放棄。
一、使用iview的menu和tab做布局,將這兩個組件放到主頁面
由于menu與tab的數(shù)據(jù)相同且樣式需要進行關聯(lián),因此可以使用vuex進行狀態(tài)管理,state中寫入需要管理的數(shù)據(jù)和狀態(tài)變量,在mutations中設置操作的動作,actions中監(jiān)聽一些行為(我的菜單沒有展開收縮部分,因此并沒有使用到actions)
二、做好布局之后要對菜單增加點擊事件
on-select,首先在mutations中注冊tab的改變事件,當左側(cè)菜單點擊的時候查看tab中是否已經(jīng)有這個頁簽并設置isExist=false,如果存在,isExist修改為true,沒有的話給tab對應遍歷的數(shù)組增加菜單相對索引的數(shù)據(jù)。
mutationsType中
mutations中:
menu組件中的事件為:
在tab組件中首先設置頁面默認路由:
再將事件加入進去:
iview+Vue多級菜單的聯(lián)動
用最笨的方式寫了一個三級菜單的聯(lián)動
<template> <div> <Select v-model="whereMap.model1" style="width:200px" @on-change="getSecond"> <Option v-for="item in list1" :value="item.id" :key="item.id">{{ item.label }}</Option> </Select> <Select v-model="whereMap.model2" style="width:200px" @on-change="getThird"> <Option v-for="item in list2" :value="item.id" :key="item.id">{{ item.label }}</Option> </Select> <Select v-model="whereMap.model3" style="width:200px"> <Option v-for="item in list3" :value="item.id" :key="item.id">{{ item.label }}</Option> </Select> <Button class="search-btn" type="default" @click="searchClear">清空</Button></div> </template> <script> export default { data () { return { datatest: { l1: [ { id: 'cat', label: '貓' }, { id: 'dog', label: '狗' } ], l2: { cat: [{ id: 'sc', label: '小貓' }, { id: 'bc', label: '大貓' }], dog: [{ id: 'sd', label: '小狗' }, { id: 'bd', label: '大狗' }] }, l3: { sc: [{ id: 'sc1', label: '小花貓' }, { id: 'sc2', label: '小橘貓' }], bc: [{ id: 'bc1', label: '大花貓' }, { id: 'bc2', label: '大橘貓' }] } }, list1: [], list2: [], list3: [], whereMap: { model1: '', model2: '', model3: '' } } }, mounted () { this.init() }, created () { this.init() }, methods: { init () { this.list1 = this.datatest.l1 }, getSecond (val) { this.list2 = this.datatest.l2[val] }, getThird (val) { this.list3 = this.datatest.l3[val] }, searchClear () { console.log(this.whereMap) this.whereMap = {}; this.list2 = []; this.list3 = []; } } } </script>
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- vue遞歸實現(xiàn)三級菜單
- vue+element使用動態(tài)加載路由方式實現(xiàn)三級菜單頁面顯示的操作
- vue.js實現(xiàn)三級菜單效果
- vue實現(xiàn)后臺管理權限系統(tǒng)及頂欄三級菜單顯示功能
- Vue iview-admin框架二級菜單改為三級菜單的方法
- Vue實現(xiàn)左右菜單聯(lián)動實現(xiàn)代碼
- vue基于mint-ui實現(xiàn)城市選擇三級聯(lián)動
- 詳解Vue、element-ui、axios實現(xiàn)省市區(qū)三級聯(lián)動
- vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例
- vue實現(xiàn)三級聯(lián)動動態(tài)菜單
相關文章
VUE數(shù)組根據(jù)索引刪除數(shù)據(jù),頁面同時更新的實現(xiàn)方法
這篇文章主要介紹了VUE數(shù)組根據(jù)索引刪除數(shù)據(jù),頁面同時更新的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07vant的Loading加載動畫組件的使用(通過接口拿數(shù)據(jù)時顯示加載狀態(tài))
這篇文章主要介紹了vant的Loading加載動畫組件的使用,通過接口拿數(shù)據(jù)時顯示加載狀態(tài),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-01-01Vue路由跳轉(zhuǎn)傳參或打開新頁面跳轉(zhuǎn)的方法總結
這篇文章主要給大家介紹了關于Vue路由跳轉(zhuǎn)傳參或打開新頁面跳轉(zhuǎn)的相關資料,在使用Vue.js開發(fā)單頁面應用時常常會遇到路由跳轉(zhuǎn)傳參的需求,需要的朋友可以參考下2023-07-07