摘要:免費(fèi)升級(jí)到升級(jí)到后,服務(wù)器可以開啟版本,對比性能和緩存各方面要更好,還有其他新特性,可以啟動(dòng)功能,更好的進(jìn)行離線緩存,更好的離線體驗(yàn)。
在線地址:https://fancy.czero.cn
手機(jī)掃描二維碼查看:
點(diǎn)擊下載安卓apk安裝包
源碼地址:https://github.com/czero1995/fancy-store
項(xiàng)目主架構(gòu) 使用的庫vue-cli (vue+webpack腳手架)
vue-router(路由跳轉(zhuǎn))
vuex(狀態(tài)管理)
axios(數(shù)據(jù)請求)
mock.js(模擬后臺(tái)數(shù)據(jù))
vue-touch(手勢判斷)
fastclick(解決移動(dòng)端瀏覽器 300 毫秒點(diǎn)擊延遲問題)
vue-lazyload(圖片懶加載)
swiper(輪播)
設(shè)計(jì)布局:HTML5
CSS3
Less
rem(阿里用的那套rem算法)
Flex(彈性布局)
vue-touch(用于實(shí)現(xiàn)購物車左滑刪除功能)
*動(dòng)畫(vue原生transition實(shí)現(xiàn)原生app的效果)
數(shù)據(jù)請求:Mock(模擬后臺(tái)數(shù)據(jù))
Axios(請求數(shù)據(jù))
邏輯交互:vue(數(shù)據(jù)渲染,各個(gè)組件間的數(shù)值傳遞)
vue-router(組件間的路由跳轉(zhuǎn))
vuex(全局狀態(tài)的管理)
調(diào)試vConsole(在移動(dòng)端查看調(diào)試器)
優(yōu)化方案:騰訊智圖(壓縮圖片,減少圖片的體積)
vue-lazyload(圖片懶加載,緩解加載數(shù)據(jù),提高網(wǎng)頁性能)
fastclick(解決移動(dòng)端300ms延遲,提高頁面交互流暢度)
vue-rouer(路由懶加載,分離app的js為多個(gè)js文件,到對應(yīng)的頁面再執(zhí)行對應(yīng)的js)
webpack(config/index.js文件內(nèi)的productionSourceMap改為false,這樣打包出來的文件可以沒有.map結(jié)尾的js文件,且文件體積減少至少一半)
Vuex刷新保存狀態(tài)使用Vuex做狀態(tài)管理的時(shí)候,當(dāng)用戶刷新頁面,Vuex里面的狀態(tài)會(huì)全部丟失,從而引起程序的一場。解決思路是在creared()鉤子函數(shù)里面添加以下方法:
created(){ console.log("頁面執(zhí)行刷新時(shí),保存Vuex的狀態(tài)到LocalStorage") //在頁面加載時(shí)讀取localStorage里的狀態(tài)信息 localStorage.getItem("userMsg") && this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("userMsg")))); //在頁面刷新時(shí)將vuex里的信息保存到localStorage里 window.addEventListener("beforeunload",()=>{ localStorage.setItem("userMsg",JSON.stringify(this.$store.state)) }) }
上面代碼的原理是,當(dāng)頁面刷新時(shí),會(huì)將當(dāng)前Vuex的狀態(tài)存儲(chǔ)到LocalStorage里面,刷新成功,再從LocalStorage賦值到Vuex里面.
實(shí)現(xiàn)細(xì)節(jié) 媲美原生的頁面前進(jìn)和后退的動(dòng)畫實(shí)現(xiàn):指定transition:name
在data中聲明默認(rèn)的進(jìn)出動(dòng)畫
在mounted()數(shù)據(jù)渲染初始化完成之后進(jìn)行判斷
拿到vuex的狀態(tài)值
然后進(jìn)行判斷
最后將當(dāng)前的組件名字傳給vuex,實(shí)現(xiàn)不同的組件進(jìn)去就有不同的切換動(dòng)畫。
下一頁動(dòng)畫.slide-go-enter-active, .slide-go-leave-active { transition: all .5s; opacity: .8; } .slide-go-enter, .slide-go-leave-to { transition: all .5s; transform: translate3d(100%, 0, 0); opacity: .8; }返回上一頁動(dòng)畫
.slide-back-enter-active, .slide-back-leave-active { transition: all .5s; } .slide-back-enter, .slide-back-leave-to { transition: all .5s; transform: translate3d(-100%, 0, 0); }購物車左滑刪除 v-touch
在css中設(shè)置好刪除按鈕的偏移量
-webkit-transform: translate(-12%, 0); -webkit-transition: all 0.3s linear;左右滑方法
滑動(dòng)的時(shí)候觸發(fā)select樣式,進(jìn)行綁定
讓當(dāng)前的列表項(xiàng)==購物車的列表,樣式會(huì)被激活,出現(xiàn)左滑刪除
注意頁面的盒子使用盒子之后會(huì)和原生頁面出現(xiàn)沖突,導(dǎo)致滑動(dòng)不流暢 因此,需要在main.js指定默認(rèn)的滑動(dòng)方式為橫向滑動(dòng)觸發(fā)訂單頁面,點(diǎn)擊頂部導(dǎo)航和左右滑動(dòng)進(jìn)行組件的切換以及動(dòng)畫樣式的判斷
也是使用的v-touch組件,實(shí)現(xiàn)方式和組件切換類似。
我給每個(gè)訂單狀態(tài)的組件一個(gè)不同的數(shù)字,根據(jù)這個(gè)數(shù)字,判斷組件是左滑動(dòng)的動(dòng)畫還是又滑動(dòng)的動(dòng)畫
參考文章:
https://github.com/czero1995/vue-pwa-skeleton
https://zhuanlan.zhihu.com/p/37408373
持續(xù)集成服務(wù) Travis CI利用Travis CI,監(jiān)聽Github項(xiàng)目master,一旦檢測到master有代碼變動(dòng),自動(dòng)執(zhí)行腳本,并把編譯打包完成的項(xiàng)目自動(dòng)發(fā)送部署到服務(wù)器,不用再像以前一樣,需要ssh登錄到服務(wù)器,再執(zhí)行g(shù)it pull操作。
本地添加.travis.yml
language: node_js node_js: - 8 branchs: only: - master before_install: - openssl aes-256-cbc -K $encrypted_87bf11d507f0_key -iv $encrypted_87bf11d507f0_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d - chmod 600 ~/.ssh/id_rsa - echo -e "Host 47.98.240.154 StrictHostKeyChecking no " >> ~/.ssh/config script: - npm install cnpm --registry=https://registry.npm.taobao.org - cnpm install - npm run build - scp -r dist root@47.98.240.154:/var/www/html/fancy -
遇到了很多的坑,失敗了無數(shù)次,終于知道問題所在:
生產(chǎn)環(huán)境錯(cuò)誤監(jiān)控sentry是國外開源的錯(cuò)誤監(jiān)控庫,有線上環(huán)境,也可以部署到自己的服務(wù)器,可以跟蹤錯(cuò)誤出現(xiàn)的步驟和錯(cuò)誤的詳細(xì)信息,方便開發(fā)人員進(jìn)行快速定位。
`升級(jí)到https后,服務(wù)器可以開啟http2.0版本,對比http1.x性能和緩存各方面要更好,還有其他新特性,
可以啟動(dòng)service work功能,更好的進(jìn)行離線緩存,更好的離線體驗(yàn)。
HTTPS證書可以免費(fèi)申請,阿里云跟騰訊云都可以申請,按照文檔指示進(jìn)行申請下載,然后將下載的證書上傳到服務(wù)器,配置服務(wù)器的內(nèi)容,就可以開啟https、http2.0、service work等功能了。
`
#克隆項(xiàng)目 git clone https://github.com/czero1995/fancy-store.git # 安裝依賴 npm install # DLL構(gòu)建庫(提高打包和編譯的速度) npm run dll # 本地開發(fā)環(huán)境 訪問http://localhost:8080 npm run dev # 構(gòu)建生產(chǎn) npm run build
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96277.html
摘要:一前言提綱基于和框架寫的一個(gè)全棧購物商城,記錄項(xiàng)目過程中遇到的一些問題以及經(jīng)驗(yàn)和技巧。服務(wù)端技術(shù)棧登錄授權(quán)用認(rèn)證機(jī)制,來實(shí)現(xiàn)登錄登出。服務(wù)器配置和緩存策略,根據(jù)不同的來代理。申請證書全站升級(jí)到,配置的協(xié)議。一、前言提綱 基于Vue和Express框架寫的一個(gè)全棧購物商城,記錄項(xiàng)目過程中遇到的一些問題以及經(jīng)驗(yàn)和技巧。 二、歷史版本 基于Vue-CLI2.0:點(diǎn)我查看 這個(gè)分支版本是一兩年前...
摘要:一前言提綱基于和框架寫的一個(gè)全棧購物商城,記錄項(xiàng)目過程中遇到的一些問題以及經(jīng)驗(yàn)和技巧。服務(wù)端技術(shù)棧登錄授權(quán)用認(rèn)證機(jī)制,來實(shí)現(xiàn)登錄登出。服務(wù)器配置和緩存策略,根據(jù)不同的來代理。申請證書全站升級(jí)到,配置的協(xié)議。 一、前言提綱 基于Vue和Express框架寫的一個(gè)全棧購物商城,記錄項(xiàng)目過程中遇到的一些問題以及經(jīng)驗(yàn)和技巧。 二、歷史版本 基于Vue-CLI2.0:點(diǎn)我查看這個(gè)分支版本是一兩...
摘要:基于的版本和編寫的模仿原生應(yīng)用的源碼地址歡迎項(xiàng)目演示地址建議直接添加到主屏幕端體驗(yàn)差一些前言為什么做這個(gè)項(xiàng)目學(xué)習(xí)全家桶,很長一段時(shí)間在用。作者聲稱之后增強(qiáng)了對的支持,探究在中的支持情況。 vue-ts-daily 基于Vue.js的2.5.13版本和TypeScript編寫的模仿原生應(yīng)用的WebApp.源碼地址 歡迎star 項(xiàng)目演示地址 showImg(https://segment...
閱讀 3965·2021-10-09 09:43
閱讀 2878·2021-10-08 10:05
閱讀 2737·2021-09-08 10:44
閱讀 887·2019-08-30 15:52
閱讀 2815·2019-08-26 17:01
閱讀 3021·2019-08-26 13:54
閱讀 1655·2019-08-26 10:48
閱讀 814·2019-08-23 14:41