好久沒更新過Vue的小文章,上次做了一個基于Vue+Mint-ui的移動端AppDemo,集成了推送功能,然后通過cordova打包生成apk,移動端表現還不錯,今天把這個小東西分享出來,希望有更多的小伙伴能夠用Vue去做一些有意思的東西,本人才疏學淺,有說的不對的地方,還請大家多多指教。下面按照慣例放上demo地址和源碼地址,希望大家能給我點下star:
Demo(進去需要先注冊才能登錄,用的localstorage,隨便寫符合格式的就行)
Demo基于Vue2源碼
Demo基于Vue1的源碼
本項目才用Vue-cli腳手架自動生成,這是一個Vue生態系統中一個偉大創舉。這意味著我們不需要手動構建我們的項目,而它就可以很快地為我們生成。下圖是一個完整的項目結構,如圖所示:
components:包含所有的頁面組件
vuex:包含vuex相關文件
modules:存放每個頁面多帶帶的state和mutation
static:靜態文件存放(圖片和圖標庫等)
index.html:渲染的頁面
main.js:應用入口點,包含根實例
App.vue:主頁面組件
項目流程:安裝Vue-cli(要有node與npm)
npm i -g vue-cli
創建一個webpack項目,并且下載依賴
vue init webpack vue-demo-orderApp cd vue-demo-orderApp npm i
安裝Vue-router,Vuex和Mint-ui
npm install vue-router vuex --save npm install mint-ui --save
熱加載打開頁面(生產的時候運行npm run build)
npm run dev
項目的框架已經搭建好了,接下來就是為項目添磚加瓦。
頁面結構分析--
本項目為一個demo項目,主要為了練習vue2的使用,結構上借鑒了官方的寫法,界面為通用的app樣式,才用餓了么團隊的Mint-Ui的制作。
這個demo的每一個頁面都是一個.vue文件,利用Vue的單文件組件,非常便于管理每個頁面的狀態,樣式和數據,首頁主要是展示頁,和操作面板頁。下面是主頁的代碼:
同步{{ orders_status }}
訂單管理
掃描盤點,手工盤點
渠道管理
掃描盤點,手工盤點
訂單發布
掃描盤點,手工盤點
訂單同步
快速同步渠道訂單,方便快捷
個人中心
信息管理,logo更換
先看代碼部分Vue2相比Vue1相比還是變化很多的,首先就是計算屬性比以前更好用了,其次是生命周期部分和以前相比變化很大,這點要注意下。其次是Vue2更推崇ES6的寫法,并且支持了promise,這是非常好的地方,而且官方的迭代文檔也寫的很全,基本上很容易從1迭代到2。并且Vue2不再支持雙向綁定(sync)這個方法了,它使用了一種更好的方式來進行父子組件之間的通信(emit),這樣子組件就不會影響到父組件的狀態。下面我放出這個主頁Vue1的代碼,大家可以比較一下:
訂單管理
掃描盤點,手工盤點
渠道管理
掃描盤點,手工盤點
訂單發布
掃描盤點,手工盤點
訂單同步
快速同步渠道訂單,方便快捷
個人中心
信息管理,logo更換
同步成功 將不同的Vuex狀態放在對應的頁面狀態模塊里,這樣當需要管理的數據很多的時候也能從容的應對。
可以看下這里面是怎么寫的,下面是news.js里面的:import * as types from "../mutation-types" const state = { news:{}, orders_status: "成功", selected:"首頁" } const mutations = { [types.SYNCHRO_ORDER](state, items){ state.news = items console.log(state.news.length) if(state.news.length != 0){ state.orders_status = "成功" } else{ state.orders_status = "失敗" } }, [types.CHANGE_SELECTED](state, item){ state.selected = item } } export default{ state, mutations }下面是mution-types.js
export const CHANGE_ORDER = "CHANGE_ORDER" export const CHANGE_STATUS = "CHANGE_STATUS" export const DISPLAY_STATUS = "DISPLAY_STATUS" export const CHANGE_PERSON = "CHANGE_PERSON" export const SYNCHRO_ORDER = "SYNCHRO_ORDER" export const CHANGE_POP = "CHANGE_POP" export const CHANGE_SELECTED = "CHANGE_SELECTED"可以看到我們將所有的mutaions方法都放在了mution-types里面進行統一的管理,然后再對應的模塊里面來處理這些方法,在不同的模塊里面我們只能操作對應模塊的數據和狀態,這對于狀態管理來說簡直是非常完美。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/81344.html
摘要:社區項目地址點此查看預覽地址點此查看使用模擬手機查看基于全家桶的風格社區盡量接近原生的風格,參考了,的客戶端。 vue-md-cnode社區 項目地址:點此查看預覽地址:點此查看(使用chrome模擬手機查看) 基于vue全家桶的Material Design風格Cnode社區 盡量接近原生App的Material Design風格,參考了Google Play,Cnode的Andr...
摘要:哪吒別人的看法都是狗屁,你是誰只有你自己說了才算,這是爹教我的道理。哪吒去他個鳥命我命由我,不由天是魔是仙,我自己決定哪吒白白搭上一條人命,你傻不傻敖丙不傻誰和你做朋友太乙真人人是否能夠改變命運,我不曉得。我只曉得,不認命是哪吒的命。 showImg(https://segmentfault.com/img/bVbwiGL?w=900&h=378); 出處 查看github最新的Vue...
摘要:前言本文的前身是源自上的項目但由于該項目上次更新時間為年月日,很多內容早已過期或是很多近期優秀組件未被收錄,所以小肆今天重新更新了內容并新建項目。提交的項目格式如下項目名稱子標題相關介紹如果收錄的項目有錯誤,可以通過反饋給小肆。 前言 本文的前身是源自github上的項目awesome-github-vue,但由于該項目上次更新時間為2017年6月12日,很多內容早已過期或是很多近期優...
摘要:本文源碼簡介之前剛入門并做好了一個簡而全的純全家桶的項目,數據都是本地模擬請求的詳情請移步這里為了真正做到數據庫的真實存取,于是又開始入門了并以此來為之前的頁面寫后臺數據接口。 本文源碼:Github 簡介: 之前剛入門vue并做好了一個簡而全的純vue2全家桶的項目,數據都是本地 json 模擬請求的;詳情請移步這里:vue-proj-demo 為了真正做到數據庫的真實存取,于是又...
閱讀 3463·2021-11-25 09:43
閱讀 1062·2021-11-15 11:36
閱讀 3313·2021-11-11 16:54
閱讀 3974·2021-09-27 13:35
閱讀 4364·2021-09-10 11:23
閱讀 5675·2021-09-07 10:22
閱讀 3032·2021-09-04 16:40
閱讀 769·2021-08-03 14:03