国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼

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

使用vue構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼

使用vue構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼:在移動應(yīng)用中很多功能都是必不可少的,使用vue構(gòu)建移動應(yīng)用自然也就需要實(shí)現(xiàn)這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項(xiàng)目的核心業(yè)務(wù)上,而不是過多的關(guān)注通用功能。 基礎(chǔ)設(shè)置 使用vue-cli搭建項(xiàng)目框架 在index.html文件中添加<
推薦度:
導(dǎo)讀使用vue構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼:在移動應(yīng)用中很多功能都是必不可少的,使用vue構(gòu)建移動應(yīng)用自然也就需要實(shí)現(xiàn)這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項(xiàng)目的核心業(yè)務(wù)上,而不是過多的關(guān)注通用功能。 基礎(chǔ)設(shè)置 使用vue-cli搭建項(xiàng)目框架 在index.html文件中添加<

在移動應(yīng)用中很多功能都是必不可少的,使用vue構(gòu)建移動應(yīng)用自然也就需要實(shí)現(xiàn)這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項(xiàng)目的核心業(yè)務(wù)上,而不是過多的關(guān)注通用功能。

基礎(chǔ)設(shè)置

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

通用功能

一、頁面跳轉(zhuǎn)

一般應(yīng)用都會擁有多個頁面,在vue中通過vue-router來管理頁面。移動應(yīng)用頁面跳轉(zhuǎn)時(shí),都有轉(zhuǎn)場效果,在vue中我們也可以實(shí)現(xiàn)。

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

<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>

監(jiān)聽$route,根據(jù)to、from meta值的大小設(shè)置不同的跳轉(zhuǎn)動畫。如果應(yīng)用到多種跳轉(zhuǎn)動畫,可以根據(jù)詳情,具體情況具體應(yīng)用。

登錄跳轉(zhuǎn)

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

二、底部導(dǎo)航

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

<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>

三、數(shù)據(jù)加載

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


數(shù)據(jù)加載效果

四、接口文件

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) {
 // 沒有權(quán)限
 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

可以在全局設(shè)置,也可以在需要時(shí)導(dǎo)入

// 在main.js中導(dǎo)入api接口
import api from '../src/api'
Vue.$api = Vue.prototype.$api = api

五、登錄權(quán)限設(shè)置

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

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()
 }
})

六、常用第三方組件

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

提示組件

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

加載數(shù)據(jù)

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

日期選擇

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

使用第三方組件雖然能夠快速完成項(xiàng)目,但是不建議過度使用,一些常用的組件如按鈕、表單還是應(yīng)該自己實(shí)現(xiàn),一是因?yàn)檫@些組件實(shí)現(xiàn)不是很復(fù)雜,二是因?yàn)橥鶎@些組件每個應(yīng)用都有自己的設(shè)計(jì)要求,使用第三方然后修改樣式,不但比自編寫更復(fù)雜而且增加冗余文件。

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

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

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

文檔

使用vue構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼

使用vue構(gòu)建移動應(yīng)用實(shí)戰(zhàn)代碼:在移動應(yīng)用中很多功能都是必不可少的,使用vue構(gòu)建移動應(yīng)用自然也就需要實(shí)現(xiàn)這些功能。之所以寫這篇文章,是希望大家能更多的將注意力放在項(xiàng)目的核心業(yè)務(wù)上,而不是過多的關(guān)注通用功能。 基礎(chǔ)設(shè)置 使用vue-cli搭建項(xiàng)目框架 在index.html文件中添加<
推薦度:
標(biāo)簽: 創(chuàng)建 VUE 移動
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产欧美久久一区二区 | 亚洲一区二区三区四区视频 | 亚欧美综合 | 精品久久一 | 国产精品一区二区不卡 | 欧美色另类 | 天天操天天插天天干 | 视频二区 素人 欧美 日韩 | 国产成人乱码一区二区三区在线 | 国产网站视频 | 国产国拍亚洲精品午夜不卡17 | 色综合91久久精品中文字幕 | 在线免费观看国产视频 | 欧美 日韩 亚洲另类专区 | 成人看免费一级毛片 | 国产精品一二区 | 国产99久久精品一区二区 | 久久一区二区精品综合 | 久久er| 麻豆视频一区二区 | 精品一区二区三区免费毛片爱 | 成人一级网站 | 国产日韩欧美中文 | 亚洲欧美在线综合 | 四虎影院永久免费观看 | 在线日韩欧美 | 免费在线欧美 | 国产99久久亚洲综合精品 | 国产在线91区精品 | 免费h片在线观看 | 国产精品视屏 | 国内精品一区二区 | 久久性| 久久婷婷色一区二区三区 | 欧美高清视频在线观看 | 亚洲国产精品一区二区久 | 日韩欧美亚洲综合 | 亚洲精品福利在线观看 | 明星国产欧美日韩在线观看 | 高清国产美女一级a毛片 | 久久福利资源网站免费看 |