<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關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:02:28
        文檔

        vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼

        vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼:當(dāng)當(dāng)當(dāng)當(dāng)當(dāng)~我又來了。 在項目里經(jīng)常會遇到側(cè)導(dǎo)航切換頁面的功能。 如果我們將側(cè)導(dǎo)航做成公共組件,來調(diào)用的話,就會在每一個頁面都引用該組件,在后期維護的時候比較麻煩,比如改參數(shù)。 所以此文將側(cè)導(dǎo)航做成父頁面組件,將切換的頁面做成子頁面,這樣只需調(diào)
        推薦度:
        導(dǎo)讀vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼:當(dāng)當(dāng)當(dāng)當(dāng)當(dāng)~我又來了。 在項目里經(jīng)常會遇到側(cè)導(dǎo)航切換頁面的功能。 如果我們將側(cè)導(dǎo)航做成公共組件,來調(diào)用的話,就會在每一個頁面都引用該組件,在后期維護的時候比較麻煩,比如改參數(shù)。 所以此文將側(cè)導(dǎo)航做成父頁面組件,將切換的頁面做成子頁面,這樣只需調(diào)

        當(dāng)當(dāng)當(dāng)當(dāng)當(dāng)~我又來了。

        在項目里經(jīng)常會遇到側(cè)導(dǎo)航切換頁面的功能。

        如果我們將側(cè)導(dǎo)航做成公共組件,來調(diào)用的話,就會在每一個頁面都引用該組件,在后期維護的時候比較麻煩,比如改參數(shù)。

        所以此文將側(cè)導(dǎo)航做成父頁面組件,將切換的頁面做成子頁面,這樣只需調(diào)用一次即可。大大減少了后期維護的麻煩

        涉及功能點

        側(cè)導(dǎo)航支持多級

        Vue Router的使用方法( 官方文檔 )

        子父組件的寫法

        樣式:elementUI

        效果圖

        實現(xiàn)

        --- 目錄結(jié)構(gòu)

        --- Vue Router的使用方法

        首先安裝 npm install vue-router

        然后在 main.js 中引入

        import router from './router'
        
        new Vue({
         el: '#app',
         router,
         components: { App },
         template: '<App/>'
        })
        

        --- vue頁面使用Vue Router

        App.vue 里引用 router-view

        router-view 就相當(dāng)于一個容器,來渲染我們定義的路由

        <template>
         <div id="app">
         <router-view></router-view>
         </div>
        </template>

        最好不要在 App.vue 里寫太多內(nèi)容,把它作為祖父級展示就可以啦,能預(yù)防新手使用的一些未知錯誤,如打包出錯之類的。

        所以,我在在 App.vue 里引用 router-view 只渲染根頁面,而 components/page 下新建了一個 index.vue 頁面,用來放側(cè)導(dǎo)航和渲染子頁面

        <template>
         <div>
         <!--v-sidebar是側(cè)導(dǎo)航-->
         <v-sidebar ></v-sidebar>
         <div class="content" :style="{height: (this.$store.state.bodyHeight-20) + 'px',overflow:'auto'}">
         <div></div>
         <transition name="move" mode="out-in">
         <!--這里的router-view用來渲染子頁面-->
         <router-view></router-view> 
         </transition>
         </div>
         </div>
        </template>
        <script>
         //引入側(cè)導(dǎo)航組件
         import vSidebar from '../common/sideMenu.vue';
         export default {
         data() {
         return {}
         },
         components:{
         //注冊側(cè)導(dǎo)航組件
         vSidebar
         },
         }
        </script>

        到此整個側(cè)導(dǎo)航切換路由的頁面結(jié)構(gòu)已經(jīng)完成了

        如果你想了解,怎么實現(xiàn)多級導(dǎo)航,那么可以繼續(xù)向下看~

        我將路由都提出來寫在了單獨的文件里,這樣方便統(tǒng)一維護管理

        routerindex.js 將頁面路由的名字和引用路徑都寫好

        import Router from 'vue-router';
        Vue.use(Router);
        export default new Router(
         {
         routes: [
         {
         path: '/',
         name: 'main', component: main,
         children: [
         {
         path: '/inputDisabled',
         component: resolve => require(['../components/page/input/index.vue'], resolve),
         meta: {title: '禁止輸入'},
         },
         {
         path: '/indexSelect',
         component: resolve => require(['../components/page/input/indexSelect.vue'], resolve),
         meta: {title: 'select聯(lián)動'},
         },
         {
         path: '/loadMoreUp',
         component: resolve => require(['../components/page/loadMore/loadMoreUp.vue'], resolve),
         meta: {title: '下拉刷新'},
         },
         ],
         },
         ]
         })

        --- 側(cè)導(dǎo)航來啦~

        我用的是elementUI里的導(dǎo)航插件。

        注意

        菜單數(shù)據(jù)結(jié)構(gòu),我這里寫的是嵌套結(jié)構(gòu),父級套子級。

        而不是并級,用標(biāo)識來區(qū)分。

        代碼思路就是循環(huán)套循環(huán)

        <template>
         <div class="sidebar">
         <el-menu class="sidebar-el-menu" :default-active="onRoutes" :collapse="collapse" unique-opened router
         collapse-transition>
         <template v-for="item in items" v-cloak>
         <template v-if="item.subset.length!==0">
         <el-submenu :index="item.url" :key="item.url">
         <template slot="title">
         <!--<img :src="item.icon" style="width: 20px;height: 20px"/>-->
         <span slot="title">{{ item.name }}</span>
         </template>
         <el-menu-item v-for="(subItem,i) in item.subset" :key="i" :index="subItem.url">
         <!--<img :src="subItem.icon" style="width: 20px;height: 20px"/>-->
         <span slot="title">{{ subItem.name }}</span>
         </el-menu-item>
         </el-submenu>
         </template>
         <template v-else>
         <el-menu-item :index="item.url" :key="item.url">
         <!--<img :src="item.icon" style="width: 20px;height: 20px"/>-->
         <span slot="title">{{ item.name }}</span>
         </el-menu-item>
         </template>
         </template>
         </el-menu>
         </div>
        </template>
        
        <script>
         export default {
         data() {
         return {
         collapse: false,
         items: [{
         name: "elementUI之input",
         url: "",
         subset: [
         {name: "禁止輸入", url: "/inputDisabled", subset: []},
         { name: "select聯(lián)動", url: "/indexSelect", subset: []
         }]
         }, {name: "手機下拉刷新", url: "/loadMoreUp", subset: []}]
         }
         },
         computed: {
         onRoutes() {
         //當(dāng)前激活菜單的 index
         return this.$route.path.replace('/', '');
         }
         },
         }
        </script>

        OK 大功告成~

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

        文檔

        vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼

        vue+Vue Router多級側(cè)導(dǎo)航切換路由(頁面)的實現(xiàn)代碼:當(dāng)當(dāng)當(dāng)當(dāng)當(dāng)~我又來了。 在項目里經(jīng)常會遇到側(cè)導(dǎo)航切換頁面的功能。 如果我們將側(cè)導(dǎo)航做成公共組件,來調(diào)用的話,就會在每一個頁面都引用該組件,在后期維護的時候比較麻煩,比如改參數(shù)。 所以此文將側(cè)導(dǎo)航做成父頁面組件,將切換的頁面做成子頁面,這樣只需調(diào)
        推薦度:
        標(biāo)簽: VUE 路由 多級
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久久久AV无码免费网站下载 | 亚洲国产福利精品一区二区| 中文字幕在线免费看线人| 免费一级毛片在线播放| 美美女高清毛片视频黄的一免费 | 国产精品手机在线亚洲| 四只虎免费永久观看| 日本亚洲中午字幕乱码 | 亚洲成人免费在线| 亚洲综合一区二区精品导航| 99精品国产成人a∨免费看| 国产精品亚洲片在线| 久热免费在线视频| 4480yy私人影院亚洲| 最刺激黄a大片免费网站| 亚洲国产精品乱码在线观看97| 亚色九九九全国免费视频| 亚洲国产精品无码久久98| 亚洲AV无码乱码在线观看性色扶| 美女羞羞视频免费网站| 国产午夜亚洲精品| 国产成人免费片在线视频观看| 老司机午夜性生免费福利 | 国产一级一毛免费黄片| 亚洲AV永久无码精品一百度影院| 久久久久久一品道精品免费看 | 视频一区在线免费观看| 亚洲熟妇无码乱子AV电影 | 国产在线播放免费| 丁香花在线观看免费观看图片| 亚洲福利在线观看| 好吊妞998视频免费观看在线| 亚洲精品国产日韩无码AV永久免费网| 久久精品国产96精品亚洲 | 狼群影院在线观看免费观看直播| 亚洲综合无码一区二区痴汉| 亚洲欧洲国产成人综合在线观看 | 日韩免费电影网址| 亚洲欧洲无卡二区视頻| 亚洲熟女一区二区三区| 成人毛片18女人毛片免费|