<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:33:29
        文檔

        使用vue構建移動應用實戰代碼

        使用vue構建移動應用實戰代碼:在移動應用中很多功能都是必不可少的,使用vue構建移動應用自然也就需要實現這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項目的核心業務上,而不是過多的關注通用功能。 基礎設置 使用vue-cli搭建項目框架 在index.html文件中添加<
        推薦度:
        導讀使用vue構建移動應用實戰代碼:在移動應用中很多功能都是必不可少的,使用vue構建移動應用自然也就需要實現這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項目的核心業務上,而不是過多的關注通用功能。 基礎設置 使用vue-cli搭建項目框架 在index.html文件中添加<

        在移動應用中很多功能都是必不可少的,使用vue構建移動應用自然也就需要實現這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項目的核心業務上,而不是過多的關注通用功能。

        基礎設置

        1. 使用vue-cli搭建項目框架
        2. 在index.html文件中添加<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">,在移動端設置禁止縮放,以便顯示合適大小的頁面。
        3. 如果要將頁面封裝為app,那么需要將config/index.js中build的assetsPublicPath設置為'./',build獲得的頁面可以直接打開,而不需要使用服務器。

        通用功能

        一、頁面跳轉

        一般應用都會擁有多個頁面,在vue中通過vue-router來管理頁面。移動應用頁面跳轉時,都有轉場效果,在vue中我們也可以實現。

        在路由文件中設置meta為數字,meta表示其路由的深度,然后在App.vue中設置:

        <template>
         <transition :name="transitionName">
         <router-view></router-view>
         </transition>
        </template>
        
        <script>
        export default {
         name: 'app',
         data () {
         return {
         transitionName: 'fade'
         }
         },
         watch: {
         '$route' (to, from) {
         let toDepth = to.meta
         let fromDepth = from.meta
         if (fromDepth > toDepth) {
         this.transitionName = 'fade-left'
         } else if (fromDepth < toDepth) {
         this.transitionName = 'fade-right'
         } else {
         this.transitionName = 'fade'
         }
         }
         }
        }
        </script>
        
        <style>
        </style>
        
        

        監聽$route,根據to、from meta值的大小設置不同的跳轉動畫。如果應用到多種跳轉動畫,可以根據詳情,具體情況具體應用。

        登錄跳轉

        PS:這里的動畫效果引用自animate.scss;

        二、底部導航

        直接引用Tabbar組件即可,如果需要添加跳轉動畫可以在<router-view></router-view>外設置:

        <template>
         <div class="content">
         <!--<transition name="fade" mode="out-in">-->
         <router-view></router-view>
         <!--</transition>-->
         <Tabbar 
         :routers="[
         {path: '/index/home', icon: 'icon-home', name: '首頁'},
         {path: '/index/loading', icon: 'icon-course', name: '加載'},
         {path: '/index/message', icon: 'icon-info', name: '信息'}
         ]"
         >
         </Tabbar>
         </div>
        </template>
        
        <script>
        export default {
         name: 'Index',
         components: {Tabbar: require('components/Tabbar')},
         data () {
         return {
        
         }
         }
        }
        </script>
        
        <style lang="scss" scoped> 
        .content{
         background-color: #eee;
        }
        </style>
        
        

        三、數據加載

        加載數據與加載頁面是存在先后順序的,比較通用方法是先加載頁面,顯示數據加載效果,在數據加載完成之后顯示完整的頁面。數據加載效果作為組件添加到應用中,比較繁瑣,所以使用自定義指令的方式實現數據加載效果的顯示。


        數據加載效果

        四、接口文件

        import fetch from 'isomorphic-fetch'
        import store from 'store'
        import router from './router'
        var env = process.env.NODE_ENV
        var rootUrl
        if (env === 'development') {
         rootUrl = ''
        }
        if (env === 'production') {
         rootUrl = ''
        }
        const post = function (url, params = {}) {
         return fetch(rootUrl + url, {
         method: 'post',
         headers: {
         'Content-type': 'application/json; charset=utf-8',
         'Authorization': store.get('token')
         },
         body: JSON.stringify(params)
         }).then(function (res) {
         if (res.status === 401) {
         // 沒有權限
         api.logout()
         } else {
         return res.json()
         }
         })
        }
        
        const urls = [
         'classAtCurDate' // 普通接口列表
        ]
        
        var api = {}
        
        for (var url of urls) {
         (function (url) {
         api[url] = (params) => {
         console.log(url)
         return post('course/' + url, params)
         }
         })(url)
        }
        // 需要特殊處理的接口
        api.logout = () => {
         store.clearAll()
         router.push('login')
        }
        
        api.login = (params) => {
         store.set('id', 1)
         store.set('token', 2)
         return Promise.resolve({params})
        }
        export default api
        
        

        可以在全局設置,也可以在需要時導入

        // 在main.js中導入api接口
        import api from '../src/api'
        Vue.$api = Vue.prototype.$api = api

        五、登錄權限設置

        路由加載前,檢查是否有登錄權限(判斷用戶id是否存在),如果存在直接跳過登錄頁進入首頁,如果不存在在跳轉登錄頁。

        router.beforeEach((to, from, next) => {
         if (cache.get('id') && to.path === '/login') {
         next('/index')
         } else if (!cache.get('id') && to.path !== '/login') {
         next('/login')
         } else {
         next()
         }
        })

        六、常用第三方組件

        許多常用組件都已經有了很好的實現,在項目開發中重復造輪子是一件很不明智的事情。vue移動應用有很多合適的庫可以選擇,如mint-ui、vux,這里不一一列舉,想了解更多的可以自行谷歌,或直接到GitHub上搜索,這里已mint-ui為例,講一下比較常用的一些組件。

        提示組件

        提示組件即顯示信息、提示用戶的組件,toast、alert、 prompt皆為此類。

        加載數據

        如上拉加載數據、下拉加載(刷新)數據、滾動加載數據;這些在mint-ui中有較好的實現

        日期選擇

        比較通用的功能,但自己實現起來還是相對麻煩的,借助第三方組件就可以很快的實現了。

        使用第三方組件雖然能夠快速完成項目,但是不建議過度使用,一些常用的組件如按鈕、表單還是應該自己實現,一是因為這些組件實現不是很復雜,二是因為往往對這些組件每個應用都有自己的設計要求,使用第三方然后修改樣式,不但比自編寫更復雜而且增加冗余文件。

        使用第三方組件庫,一般有兩種導入方式:一是全部導入,這樣會引入很多不必要的文件;二是只導入使用的組件和樣式。建議使用第二種方式,避免導入多余組件,mint-ui可以使用Use babel-plugin-component簡化單獨導入組件的寫法。

        GitHub地址:https://github.com/x007xyz/vue-mobile

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

        文檔

        使用vue構建移動應用實戰代碼

        使用vue構建移動應用實戰代碼:在移動應用中很多功能都是必不可少的,使用vue構建移動應用自然也就需要實現這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項目的核心業務上,而不是過多的關注通用功能。 基礎設置 使用vue-cli搭建項目框架 在index.html文件中添加<
        推薦度:
        標簽: 創建 VUE 移動
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一个人免费日韩不卡视频| 国产精品无码永久免费888 | 好看的电影网站亚洲一区| 亚洲免费在线视频| 亚洲人成网亚洲欧洲无码久久| 免费看内射乌克兰女| 亚洲国产精品专区在线观看| 一区二区三区免费精品视频| 亚洲视频在线免费| 中文字幕高清免费不卡视频| 亚洲精品国精品久久99热一| 免费人成网站在线观看不卡| 亚洲综合成人网在线观看| 91精品导航在线网址免费| 亚洲一区动漫卡通在线播放| 日本免费一区二区三区最新vr| 相泽亚洲一区中文字幕| 免费久久人人爽人人爽av | 亚洲国产美女精品久久| 四虎永久在线精品免费观看视频| 亚洲人成网站看在线播放| 午夜精品在线免费观看| 亚洲免费在线播放| 99久久国产热无码精品免费| 亚洲av永久中文无码精品| 亚洲欧洲精品成人久久曰影片| a级毛片无码免费真人久久| 国产精品国产免费无码专区不卡| 老司机福利在线免费观看| 亚洲国产精品乱码一区二区| 亚洲精品视频在线免费| 精品亚洲成a人在线观看| 国产亚洲成av片在线观看| 日韩欧毛片免费视频| 美景之屋4在线未删减免费 | 亚洲一级特黄大片在线观看| 久久aⅴ免费观看| 18禁亚洲深夜福利人口| 亚洲精品免费视频| 精品久久久久久久免费加勒比| 中文在线免费不卡视频|