成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

手把手教你基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar

如何基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar?本篇文章就來給大家介紹一下uniapp動(dòng)態(tài)路由實(shí)戰(zhàn),手把手教大家在uniapp中實(shí)現(xiàn)動(dòng)態(tài)路由。

手把手教你基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar

uniapp用來開發(fā)app還是比較方便快捷的,官網(wǎng)教程挺細(xì)致,幾乎所有問題都能找到答案。網(wǎng)上也有不少入門教程,騰訊課堂、b站上有好幾個(gè)視頻教程,感覺還可以(其實(shí)我沒怎么看),比較偏實(shí)戰(zhàn),可以動(dòng)手試一下。

本文假設(shè)閱讀者已經(jīng)基本掌握了uniapp的入門開發(fā)技能,如果還沒有掌握uniapp,但你準(zhǔn)備進(jìn)行相關(guān)開發(fā),趕緊從官方文檔入手,再結(jié)合實(shí)戰(zhàn)視頻操作就好了,前面推薦的都不錯(cuò)。好了,進(jìn)入本文主題——如何基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar

現(xiàn)狀分析

vue項(xiàng)目上有路由插件Vue Router,所有路由都是統(tǒng)一管理,可以統(tǒng)一攔截,控制下一步動(dòng)作,但是在uniapp上,情況就不一樣了。uniapp上沒有路由插件,然后頁面分為tabbar和非tabbar兩種,頁面跳轉(zhuǎn)也有自己的一套api,最重要的路由攔截功能并不支持,所有的頁面都是在page.json文件里提前配置好。

需求分析

那假設(shè)我們要在app上做一套對(duì)應(yīng)著用戶權(quán)限的東西,就是不同用戶,根據(jù)權(quán)限配置,決定了他進(jìn)來后能用哪些頁面哪些按鈕,甚至是能控制到tabbar這塊。這個(gè)需求,就需要根據(jù)權(quán)限控制路由內(nèi)容及導(dǎo)向,但在目前條件下是實(shí)現(xiàn)不了的。不過在插件市場有不少人寫了路由插件,思路其實(shí)都是向web端的vue Router看齊的,能完整滿足需求的只有這個(gè)路由插件。

還有很重要的一個(gè)需求就是動(dòng)態(tài)tabbar,這是一個(gè)很重要內(nèi)容,就是在app登錄后主頁下面的一欄按鈕,這些tabbar基本上包括了app的主要內(nèi)容,如何實(shí)現(xiàn)動(dòng)態(tài)的tabbar,像上面提到的根據(jù)權(quán)限控制。比如說tabbar最多只能有五個(gè),那我如何控制甲能看到5個(gè),乙只能看到3個(gè)?這個(gè)需求在原生的uniapp上無法實(shí)現(xiàn),原生的只能配置好pages,tabBar是pages的一個(gè)子項(xiàng)配置。不過插件市場上有人實(shí)現(xiàn)了tabbar的組件化,我們可以嘗試下定制開發(fā)。

總結(jié)起來說需求其實(shí)就兩個(gè):

1、實(shí)現(xiàn)uniapp路由守衛(wèi);

2、實(shí)現(xiàn)動(dòng)態(tài)tabbar;

第一個(gè)需求,前面提到過一些方案;第二個(gè)需求,動(dòng)態(tài)tabbar,需要結(jié)合uview組件庫的tabbar組件來實(shí)現(xiàn)。我們?cè)俜治鱿履壳暗目蚣堋⒉寮芰Γ酆仙鲜鲂枨螅陀羞@張圖:

手把手教你基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar

這張圖里有些內(nèi)容前面沒有提到,比如狀態(tài)管理、本地緩存,這是后面會(huì)用到的一個(gè)關(guān)鍵部分,下面的設(shè)計(jì)部分會(huì)提到。

方案設(shè)計(jì)

我們來捋一捋業(yè)務(wù)流程設(shè)計(jì):

1、app輸入用戶名密碼登錄;

2、在路由守衛(wèi)進(jìn)行攔截,判斷用戶登錄時(shí)的本地?cái)?shù)據(jù)是否存在路由信息;如果沒有則走第3步,如果有就走第4步;

3、調(diào)用接口獲取到路由并從服務(wù)端獲取路由數(shù)據(jù);將路由數(shù)據(jù)存入本地(vuex、uniapp緩存);

4、將tabbar這一層級(jí)數(shù)據(jù)單獨(dú)提出來存儲(chǔ),結(jié)合uview的tabbar組件實(shí)現(xiàn)動(dòng)態(tài)tabbar;

5、在本地存一個(gè)全量的app按鈕集合(除了tabbar,其他頁面都是通過按鈕跳轉(zhuǎn)),與服務(wù)端獲取的數(shù)據(jù)進(jìn)行比對(duì),得到一個(gè)按鈕展示與否的配置數(shù)據(jù)集;

6、路由信息初始化后,進(jìn)入用戶定制化的初始頁或者首頁;

ok,分析得差不多了,下面介紹下具體實(shí)操步驟。

解決方案

一、實(shí)現(xiàn)路由守衛(wèi)

路由插件推薦uni-simple-router,具體教程可以參考它的官方文檔,寫得比較詳細(xì)了。以下是我的簡單實(shí)戰(zhàn)教程。

安裝uni-simple-router插件

npm install uni-simple-router

接下來進(jìn)行模塊化配置,創(chuàng)建文件夾router,文件夾內(nèi)容如下:

手把手教你基于uniapp框架實(shí)現(xiàn)動(dòng)態(tài)路由、動(dòng)態(tài)tabbar

home文件里是所有頁面的路由配置,就像這樣:

const home = [  {       path: '/pages/login/login',       aliasPath:'/app/login',  //對(duì)于h5端適用       name: 'login',         meta: {          title: '登錄',      }     },  {       path: '/pages/index/index',       aliasPath:'/app/index',  //對(duì)于h5端適用       name: 'index',         meta: {          title: '首頁',      }     }] export default home

這里必須要多說一句,由于這個(gè)插件沒有動(dòng)態(tài)寫入功能,所以我們要實(shí)現(xiàn)權(quán)限管理,必須在本地配置完整的路由;而且pages.json中的內(nèi)容也要完整配置,不過tabbar配置有些不同,后面會(huì)說到;

modules文件夾下的index只是一個(gè)模塊讀取的代碼;

const files = require.context('.', false, /.js$/) const modules = []  files.keys().forEach(key => {   if (key === './index.js') return   const item = files(key).default   modules.push(...item) })  export default modules

router根級(jí)目錄下的index內(nèi)容主要就是路由守衛(wèi):

import modules from './modules/index.js' import Vue from 'vue' import Router from 'uni-simple-router' import store from '@/store/store.js'  Vue.use(Router) //初始化 const router = new Router({  APP: {   holdTabbar: false //默認(rèn)true  },  h5: {   vueRouterDev: true, //完全使用vue-router開發(fā) 默認(rèn) false    },  routes: [...modules] //路由表 });  //全局路由前置守衛(wèi) router.beforeEach((to, from, next) => {  // 首先判斷是否存在路由信息  //不存在就先調(diào)用接口得到數(shù)據(jù)    //具體內(nèi)容可以參照上文的方案設(shè)計(jì)內(nèi)容 }) // 全局路由后置守衛(wèi) router.afterEach((to, from) => {}) export default router;

最后在app的main.js里需要這么引用:

import router from './router/index.js' import { RouterMount } from 'uni-simple-router' ...  //v1.3.5起 H5端 你應(yīng)該去除原有的app.$mount();使用路由自帶的渲染方式 // #ifdef H5  RouterMount(app,'#app'); // #endif  //為了兼容小程序及app端必須這樣寫才有效果 // #ifndef H5  app.$mount();  // #endif

至于后面的路由用法,直接看官方文檔,比較清楚,用法跟vue-router差不多。這里要特別說明的是上面代碼初始化的那一塊的幾個(gè)配置:holdTabbar: false,vueRouterDev: true,前者表示在app端取代原生的tabbar攔截,在這個(gè)插件里攔截;后者表示在h5中完全用vue-router的api,廢棄了包括此插件及uniapp的原生api,后者請(qǐng)慎用。

二、結(jié)合狀態(tài)管理、uniapp數(shù)據(jù)緩存管理app緩存開銷

這里其實(shí)沒什么難度,也不給代碼了,很簡單。

從服務(wù)端獲取的數(shù)據(jù)我可以存在狀態(tài)管理里,但是vuex的數(shù)據(jù)存在內(nèi)存中,容易丟失。比如說,app用一會(huì)兒,我拉到了后臺(tái),立馬再點(diǎn)開是沒問題可以用的;但如果時(shí)間太長了,不小心清了緩存,或者超過了服務(wù)端的超時(shí)限制,此時(shí)再次點(diǎn)開app,可能就缺失了部分?jǐn)?shù)據(jù)。這個(gè)問題就要在路由守衛(wèi)進(jìn)行處理了,在路由跳轉(zhuǎn)時(shí)就判斷相關(guān)的狀態(tài)數(shù)據(jù)是否存在,不存在就再進(jìn)行處理。

再介紹一下uniapp的數(shù)據(jù)緩存api,更穩(wěn)定,特別在app上,它不是緩存的概念,是持久化存在的,除非你調(diào)用它的清除方法。你可以利用這二者,分別存一些數(shù)據(jù),搭配做一些控制,具體實(shí)現(xiàn)就自己琢磨下。比如你從后臺(tái)拉回,狀態(tài)管理的數(shù)據(jù)沒了,但這個(gè)時(shí)間還在服務(wù)端超時(shí)范圍內(nèi),那這個(gè)未超時(shí)的token數(shù)據(jù)就要存在uniapp的數(shù)據(jù)緩存中,我根據(jù)這個(gè)token再查到相關(guān)權(quán)限路由信息,給vuex賦值,再進(jìn)行后續(xù)操作;如果拉回來,超時(shí)了,那就直接回到登錄頁。這一塊,我只是提供思路,而且是成功的思路,親測有效的。

三、實(shí)現(xiàn)動(dòng)態(tài)tabbar

好了,能走到這一步,萬里長征就走了一半了。別看下面的內(nèi)容就那么一點(diǎn),我把相關(guān)的資料拼起來實(shí)際上花了比上面那些

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
国模少妇一区二区三区咪咕| 精品一线二线三线无人区| 国内精品久久久久久久久齐齐| 国内精品久久久久影院优| 精品成人AV一区二区三区| 久人人爽人人爽人人片AV| 女人扒下裤让男人桶到爽| 欧洲另类二三四区| 少妇又色又紧又爽又刺激视频| 无码一区二区三区中文字幕| 亚洲欧美综合区丁香五月小说 | 强插女教师AV在线| 天堂AⅤ无码一区二区三区| 亚洲AV无码片一区二区三区| 一本一道久久A久久精品综合| A级无遮挡超级高清-在线观看| 丰满少妇被猛烈高清播放| 国产中文成人精品久久久| 久久人人爽人人爽人人片AV | 久久久久久亚洲精品中文字幕| 欧美成人精品高清视频在线观看| 色婷婷AV一区二区三区在线观看| 亚洲AV无码乱码在线观看性色 | 堕落女教师动漫全无修| 黑人巨大跨种族VIDEO| 蜜桃av中文字幕| 色翁荡息又大又硬又粗又爽| 亚洲AV永久无码区成人网站| 97国产精华最好的产品亚洲 | 久久精品国产99精品最新| 欧美兽交YOYO| 香港A级毛片经典免费观看| 岳今晚让我玩个够肥水一体探岳| 成人污污污WWW网站免费| 国产午夜精品一区二区三区漫画 | 精品人妻暴躁一区二区三区| 欧美制服丝袜人妻另类| 驯服小挗子2韩语中字| 2020国产精品香蕉在线观看| 国产成人精品123区免费视频| 久久成人国产精品免费| 日韩精品人妻系列无码专区免费 | 无码午夜福利视频一区| 综合无码精品人妻一区二区三区 | 国产丰满大屁股XXXX| 浪货趴办公桌~H揉秘书电影| 色综合久久精品亚洲国产消防 | 免费三级现频在线观看免费| 凸凹人妻人人澡人人添| 中文字幕丝袜人妻制服丝袜在线| 国产极品视觉盛宴专区| 蜜臀AV网站在线观看| 婷婷综合另类小说色区| 18禁无遮挡无码网站免费 | 新婚之夜玩弄人妻系列| ASS鲜嫩鲜嫩PICS日本| 好儿子妈妈今后就是你的人| 欧洲无码精品A码无人区| 亚洲国产AV玩弄放荡人妇系列| А∨天堂一区一本到| 久久99精品久久久久婷婷| 少妇久久久久久久久久| 中国熟妇浓毛HDSEX| 国产婷婷丁香五月缴情成人网| 欧美日韩人妻精品一区在线| 亚洲乱亚洲乱妇无码麻豆| 丰满少妇爆乳无码专区| 免费真人视频APP| 亚洲国产丝袜精品一区| 寡妇被下药和大狼拘| 女技师强制高潮18XXXX按摩| 亚洲精品无码AV中文字幕电影网| 俄罗斯SEVERODVINSK| 男女作爱在线播放免费网站 | 小雪尝禁果又粗又大的动态视频| XOXOXO性ⅩYY欧美69| 精品无人区无码乱码毛片国产| 双腿吊起揉捏花蒂| FREEXXXX国产HD中文对白| 久久精品亚洲综合专区| 性中国少妇熟妇XXXX农村| 色综合视频一区二区三区| 亚洲婷婷五月色香综合缴情| 国产精品免费无遮挡无码永久视频| 欧美黑人性爱视频 | 亚洲色偷无码一区二区| 国产精品青青青高清在线| 人与动物PPT免费模板| 中文字幕AV在线一二三区| 精品久久久久久中文字幕人妻最新| 色欲色欲天天天WWW亚洲伊| BT天堂新版中文在线地址| 老头扒开粉嫩的小缝亲吻网站| 亚洲国产成人资源在线| 国产清纯美女爆白浆视频| 少妇高潮毛片免费看| А√天堂网WWW最新版地址| 免费毛儿一区二区十八岁| 亚洲香蕉成人AAAV在线网站| 国模无码视频一区| 无码毛片AAA在线| 丰满爆乳BBWBBWBBW| 人妻少妇无码专视频在线| 2021精品亚洲中文字幕| 老熟妇毛茸茸BBW视频| 亚洲熟妇无码乱子AV电影| 狠狠综合久久狠狠88亚洲| 性妇WBBBB搡BBBB嗓小说| 国产精品国产三级国产普通话| 三个男人躁我一个爽视频免费| JZZIJZZIJ亚洲成熟少妇| 男女作爱在线播放免费网站| 中文字幕AⅤ天堂在线| 乱精品一区字幕二区| 野花社区免费观看高清在线1日本 野花社区韩国视频WWW了 | 国产H视频在线观看| 色婷婷精品久久二区二区蜜臀av| 爸爸缓慢有力送女儿的句子| 强奷漂亮雪白丰满少妇| JAPANESEHD无码中文字| 欧美性大战久久久久久久| BBOX撕裂BASS俄罗斯| 欧美黑人性暴力猛交喷水| 99久久人妻无码精品系列| 内射中出日韩无国产剧情| 97成人碰碰久久人人超级碰OO| 免费看无码自慰一区二区| 69SEX久久精品国产麻豆| 男女爽爽无遮挡免费视频| 2021av在线播放| 欧美日韩一区二区三区精品视频在线| 98人妻人人揉人人躁88Av| 欧美VPSWINDOWS精品| JAPANESE熟女熟妇| 人人妻人人爽人人| 厨房里挺进岳丰满大屁股| 丝袜 中出 制服 人妻 美腿| 国产精品国色综合久久| 小婷又紧又嫩又窄又多水 | 亚洲AV无码国产精品色午友情链| 韩国三级香港三级日本三级L| 亚洲国产欧美在线看片一国产 | 强行糟蹋人妻HD中文字幕| 产后漂亮奶水人妻| 熟女性饥渴一区二区三区| 国产精品久久久久精品三级| 性丰满ⅩXXOOO性HD| 精品午夜福利1000在线观看| 又粗又大又硬毛片免费看| 美女自拍高潮流白浆| JAPANESEⅩⅩⅩHD69| 三级做A全过程在线观看| 国产精品乱码一区二区三区| 亚洲成AV人片久久| 麻豆精产国品一二三区别| JAPANESE极品丰满少妇| 日韩欧无码一区二区三区免费不卡| 国产92成人精品视频免费| 亚洲AV无码成人精品区国产| 久久九九久精品国产综合一千收藏| 张柏芝用嘴给陈冠希高潮| 人妻丰满熟妇AV无码区动漫| 国产成人AV无码精品| 亚洲成AV人最新地堂无码| 老熟妇一区二区三区啪啪| JAVA强行VIDEOS| 舔高中女生奶头内射视频| 狠狠色噜噜狠狠狠狠AV| 中文字幕AV一区| 色五月激情中文字幕| 国产综合无码一区二区色蜜蜜| 野花日本高清在线观看免费| 人妻少妇偷人精品无码| 国产乱码精品一区二区三区四川人| 亚洲欧美中文日韩V在线观看| 女人和拘做受全过程免费| 国产波霸爆乳一区二区| 亚洲日韩精品无码AV海量| 欧美性生交XXXXX久久久| 国产精品国产三级国产AV剧情| 亚洲熟妇无码A∨| 人妻少妇精品无码专区APP| 国产乱AⅤ一区二区三区| 影音先锋新男人AV资源站| 日本XXXX色视频在线观看免费,| 国产日韩亚洲大尺度高清| 幼儿HIPHOP仙踪林的功能| 日韩一区国产二区欧美三区| 狠狠色欧美亚洲狠狠色WWW| 97人伦影院A级毛片| 无码人妻av一区二区三区毛片| 久久综合伊人77777麻豆| 顶级大但人文艺术中的绘画作品| 亚洲国产成人无码精品| 人妻AV一区二区三区精品| 好男人好资源电影在线播放| CAOPOREN超碰最新地址| 亚洲H在线播放在线观看H| 人妻巨大乳一二三区麻豆| 极品熟妇大蝴蝶20P|