<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        vue動態路由實現多級嵌套面包屑的思路與方法

        來源:懂視網 責編:小采 時間:2020-11-27 22:32:41
        文檔

        vue動態路由實現多級嵌套面包屑的思路與方法

        vue動態路由實現多級嵌套面包屑的思路與方法:前言 最近在工作中遇到了一個問題,是關于vue動態路由多級嵌套面包屑怎么弄(不是動態路由嵌套可以嘗試用 this.$route.matched方法獲取到path和name集合,動態的嵌套獲取不到全部具體的id) 功能比如:A列表頁面路由如/a,點擊任意一列進入任意一個A的詳情頁
        推薦度:
        導讀vue動態路由實現多級嵌套面包屑的思路與方法:前言 最近在工作中遇到了一個問題,是關于vue動態路由多級嵌套面包屑怎么弄(不是動態路由嵌套可以嘗試用 this.$route.matched方法獲取到path和name集合,動態的嵌套獲取不到全部具體的id) 功能比如:A列表頁面路由如/a,點擊任意一列進入任意一個A的詳情頁

        前言

        最近在工作中遇到了一個問題,是關于vue動態路由多級嵌套面包屑怎么弄(不是動態路由嵌套可以嘗試用 this.$route.matched方法獲取到path和name集合,動態的嵌套獲取不到全部具體的id)

        功能比如:A列表頁面路由如/a,點擊任意一列進入任意一個A的詳情頁面名字為B,/b/03(這個是動態路由弄是吧,03就是id嘛),點擊B頁面任意一列,再進入B的詳情頁名字為C,路由如/bdetail/01;現在弄面包屑要獲取到的路由是剛剛打開的,如(/a;/b/03;/bdetail/01)

        思路:獲取所有進入的層級的路由和名稱如breadlist=[{path:'/a',name:'一級'},{path:'/b/03',name:'二級'},{path:'/bdetail/01',name:'三級'}] ,然后遍歷出來如: <span v-for="(item in breadlist)"><router-link :to="item.path">{{item.name}}</router-link></span>

        做法

        下面貼出相關代碼:

        A列表頁面跳轉按鈕:(breadNum記錄面包屑層級)

        <router-link :to="{path:'/b/'+id,query:{breadNum:2}}"></router-link>

        B列表頁面跳轉按鈕:

        <router-link :to="{path:'/bbdetail/'+id,query:{breadNum:3}}"></router-link>

        breadcrumb.vue頁面:

        <template>
         <div class="breadbox">
         <span v-for="(item,index) in breadlist" >
         <router-link :to="item.path">{{item.name}}</router-link>
         </span>
         </div>
        </template>
        <script>
         export default{
         created() {
         this.getBreadcrumb();
         },
         data() {
         return {
         breadlist: '' // 路由集合
         }
         },
         methods: {
         getBreadcrumb() {
         var breadNumber= this.$route.query.breadNum || 1;//url變量breadNum記錄層級,默認為1,如果大于1,要添加上變量;
         var breadLength=this.$store.state.breadListState.length;//目前breadlist集合數組個數
         var curName=this.$route.name;
         var curPath=this.$route.fullPath;
         var newBread={name:curName,path:curPath};
         var ishome=curName=='首頁';
         console.log(ishome);
         if(breadNumber===1){//點擊一級菜單
         this.$store.commit('breadListStateRemove',1);//初始化,只有首頁面包屑按鈕
         if(!ishome)//如果不是首頁
         this.$store.commit('breadListStateAdd',newBread);//當前頁面添加到breadlist集合
         }
         else if(breadLength<=breadNumber){//如果不是一級導航,并且breadlist集合個數等于或者小于目前層級
         this.$store.commit('breadListStateAdd',newBread);//要把當前路由添加到breadlist集合
         }else{
         this.$store.commit('breadListStateRemove',parseInt(breadNumber)+1);//如果往回點面包屑導航,截取;
         }
         this.breadlist=this.$store.state.breadListState;
         console.log(this.breadlist);
         }
         },
         watch: {
         $route () {
         this.getBreadcrumb();
         }
         },
         }
        </script>

        狀態管理store.js代碼:

        export default store = new Vuex.Store({
         state: {
         breadListState:[
         {name:'首頁',path:'/'}
         ]
         },
         mutations: {
         breadListStateAdd(state,obj){
         state.breadListState.push(obj);
         },
         breadListStateRemove(state,num){
         state.breadListState=state.breadListState.slice(0,num);
         }
         }
        
        })

        路由route.js代碼:

        {
         path: '/',
         name: '首頁',
         component: Main,
         redirect:'/home',
         children:[
         {path: '/a',name: 'A頁面',component: APage},
         {path: '/b/:id',name: 'B頁面',component: BPage},
         {path: '/bdetail/:id',name: 'C頁面',component: CPage},
         ]
        } 

        總結

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        vue動態路由實現多級嵌套面包屑的思路與方法

        vue動態路由實現多級嵌套面包屑的思路與方法:前言 最近在工作中遇到了一個問題,是關于vue動態路由多級嵌套面包屑怎么弄(不是動態路由嵌套可以嘗試用 this.$route.matched方法獲取到path和name集合,動態的嵌套獲取不到全部具體的id) 功能比如:A列表頁面路由如/a,點擊任意一列進入任意一個A的詳情頁
        推薦度:
        標簽: 方法 VUE 動態的
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 我的小后妈韩剧在线看免费高清版 | 亚洲AV无码专区亚洲AV伊甸园| 美女被暴羞羞免费视频| 国产成人青青热久免费精品| 久久精品国产亚洲AV| 在线观看亚洲精品福利片| 国产亚洲综合视频| 亚洲国产天堂久久久久久| 久久久亚洲精品国产| 免费国产叼嘿视频大全网站 | 亚洲A丁香五香天堂网| 一级做α爱过程免费视频| 爱情岛论坛网亚洲品质自拍| 毛片基地看看成人免费| 国产1024精品视频专区免费| 国产偷国产偷亚洲高清日韩| 国产精品无码免费专区午夜| 久久亚洲精品成人| 亚洲免费在线视频观看| 亚洲色在线无码国产精品不卡| 国产精品无码一区二区三区免费 | 国产成人亚洲综合无| 久久亚洲国产精品123区| 99久久免费精品高清特色大片| 亚洲国产亚洲综合在线尤物| 国外成人免费高清激情视频| 亚洲三级电影网站| 青青久在线视频免费观看| 日韩亚洲人成在线综合| 亚洲AV无码久久精品蜜桃| 在线视频免费观看高清| 午夜免费国产体验区免费的| 免费看a级黄色片| 国产大片免费天天看| 亚洲国产精品综合一区在线| 国产在线98福利播放视频免费| 成全视频高清免费观看电视剧| 亚洲高清中文字幕综合网| 又粗又硬免费毛片| 国产福利视精品永久免费| 国产无遮挡色视频免费观看性色|