1. 程式人生 > >使用vue2+Vuex+Router寫的Demo以及遇到的一些坑和使用建議

使用vue2+Vuex+Router寫的Demo以及遇到的一些坑和使用建議

一直對vue很感興趣,最近使用vue2.0開發了高仿餓了麼點餐系統來練練手,不得不說vue真是一個很不錯的框架,但是也遇到過一些坑,在這裡和大家分享一下

餓了麼點餐系統

vue2.0、vuex、vue-router、axios、webpack、eslint、better-scroll

部分細節還在開發中,感興趣的可以加入進來,覺得不錯的給個star

## 演示 掃二維碼在手機上檢視效果更好

專案截圖

構建

vue有自己的腳手架構建工具vue-cli,使用起來非常方便,使用webpack來整合各種開發便捷工具,比如:

  • 程式碼熱更新,修改程式碼之後網頁無重新整理改變,對前端開發來說非常的方便
  • PostCss,再也不用去管相容性的問題了,只針對chrome寫css程式碼,會自動編譯生成支援多款瀏覽器的css程式碼
  • Eslint,統一程式碼風格,規避低階錯誤,對於有程式碼潔癖的人來說是絕對的好東西,不過有些地方的程式碼校驗有時候也挺麻煩的-.-
  • bable,ES2015出來已經有一段時間了,但是不少瀏覽器還沒有相容ES6.有了bable,放心使用ES6語法,它會自動轉義成ES5語法。
  • Stylus,類似於SASS/SCSS,但是可以不寫{}和“:”,使用起來還是很方便的

除此之外,vue-cli已經使用node配置了一套本地伺服器和安裝命令等,本地執行和打包只需要一個命令就可以搞定,非常的方便

開發

vue非常好的融合了react的元件化思想和angular的指令思想。
一個vue的元件將HTML、CSS、JS程式碼寫在一個檔案裡面,這樣既方便編寫,也方便管理和修改

Axios

在vue1.x的時候,vue的官方推薦HTTP請求工具是vue-resource,但是在vue2.0的時候將推薦工具改成了axios。

使用方式都差不多,但需要注意的是:介面返回的res並不直接是返回的資料,而是經過axios本身處理過的json物件。真正的資料在res.data裡:

axios.get(url).then((res)=>{
  this.data = res.data
})

Vuex

vue提供了一個數據管理工具vuex,有點類似於angular中factory和service,可以進行資料上的通訊。
比如儲存一些公共變數或者是不同元件間的資料處理等。

這個有一些高階用法在這裡不細說,想要了解的可以去官方文件看,有中文版本。

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    }
  }
})

Vue-Router

vue-router是vue的路由系統,可以用來建立單頁應用。基本思想是在主頁面中引入標籤,然後定義路由,把router掛在到app上,然後把各個子頁面渲染到view裡面。使用起來還是很方便的,
跳轉頁面只需要

router.push('test')

獲取元素節點

vue2.0廢除了v-el指令,所有的節點指令修改為ref,然後通過ref來獲取元素節點,如

<div ref="testHook">test</div>
...js code
this.$ref.testHook

元件間的通訊

一。如果是和子元件通訊,則使用ref就可以實現,如:

<test ref="testHook"></test>
...js code
this.$ref.testHook.add() //呼叫test子元件的add方法

二。使用emit來發送廣播

vue2提供了一套廣播機制,即一邊傳送廣播,一邊接收廣播來執行相應操作。使用方法如下:

比如想要給test元件傳送一個“相加”廣播:

export default {
  method:{
    click(){
      Vue.$emit('add',{}) //第二個引數可作為傳遞資料傳送到監聽埠,不需要則傳空物件
    }
  }
}

那麼test元件中就需要監聽,在created方法裡寫

export default {
  created(){
   Vue.$on('add',this.add)
  },
  method:{
    add(){
      this.count++
    }
  }
}

除了以上總結的這點小的知識點以外,還有很多vue的知識想要和大家分享,以後會陸續寫出來,大家感興趣的也可以來我的GitHub一起來寫這個專案(覺得不錯的給個star Hah)

相關推薦

使用vue2+Vuex+RouterDemo以及遇到的一些使用建議

一直對vue很感興趣,最近使用vue2.0開發了高仿餓了麼點餐系統來練練手,不得不說vue真是一個很不錯的框架,但是也遇到過一些坑,在這裡和大家分享一下 餓了麼點餐系統 vue2.0、vuex、vue-router、axios、webpac

PEP8編碼規範,及開發中的一些慣例建議

ret mar 小寫 比較運算 -c 包含 user def 有意 為什麽要有編碼規範   規範的代碼給人的第一感覺是【美觀】,美的東西總是更加的吸引人,也願意觀看。亂糟糟得是不是會讓人不由自主地想飆臟話。所以美觀進而帶來的是代碼的【可讀性】強,想一想你寫的代碼可讀性非常高

給初學python的朋友的一些忠告建議

從2013年開始接觸python以來,我體驗過閱讀書籍,學習MOOC,查閱文件,谷歌搜尋,逛程式設計社群。現在仍在學習python中,走了很多的彎路。成功的道路各有不同,失敗的地方卻是種種。我想把我學習python過程中走過的一些彎路說給大家,希望給初學python的一些朋友有些幫助。

VM ware 安裝時候的一些解決辦法

1.解決VMware Workstation 不可恢復錯誤: (vcpu-0)  開機進入bios,開啟inter virtual technology   enable     2.進入之後輸入密碼不顯示的,但是是有輸入的   &nb

關於資料庫優化的一些感想建議

今天不寫優化,說點感想和建議(昨天就要發的,結果第一次用手機操作,發錯了,只發出去一張網上找的美圖): 在oracle做研發和售後這麼多年,為很多大客戶的資料庫做了優化,這些客戶的系統都是非常重要的系統,而且都配備了非常專業的DBA(或者聘請了業界知名的第三方維護團隊),但是查出來的效能問題還是觸目

Git 學習過程中遇到的一些自己的一些理解

Git 在向遠端倉庫提交時出錯 我們看到的很多的git教程中都會先教你如何新建github倉庫,但是這裡有一個坑,就是,新建倉庫時勾選了Initialize this repository with a README,即為倉庫初始化一個README.md檔案,但是如果這樣的

最近使用gvoice的小隊語音 一些感悟《一》

騰訊語音外掛gvoice,基於unity 至於匯入外掛什麼的就不多說,多的是教程,但是詳細的使用教程少的可憐,也是踩了好多坑,才算除錯通. 新建一個語音模組管理器 GVoiceManager,做成單例方便呼叫 public static GVoiceManager _Instan

pthreads v3下一些需要注意的地方

一、子執行緒無法訪問父執行緒的全域性變數,但父執行緒可以訪問子執行緒的變數 <?php class Task extends Thread { public $data; public function run() { global $n

網頁中QQ線上客服進行聊天的一些解決方案

說明 從瀏覽器喚起QQ進行聊天,是很多公司或者企業會用到的一種客服方式,然而很多時候,一些手機端瀏覽器並不支援直接跳轉到QQ,或者不支援從App內嵌的網頁中跳轉到QQ頁面。 正文 針對跳轉喚起QQ,QQ推廣的官方網站http://shang.qq.com/v3/i

我對銷售人員的一些看法建議

    我在網上看到一些朋友寫一些有關如何做銷售,比如說銷售目標一要一切為了銷售,二要關注業績,三如何與客戶溝通等等,這些文章給我的感覺是為了銷售可以不擇手段。   我們公司有一個軟體代理商,我就目睹這家軟體代理商的銷售人員如何沖銷售的,銷售之前對客戶有很多承諾,什麼都可以答

基於Python使用Redis的一些想法建議

1關於Redis使用的一點想法 1.1進行快取前,需考慮 (1)該資料屬於短暫保留,例如只保留三天、七天或者一個月,此時建議採用快取; (2)該資料在某一個時間段請求量很大,此時建議採用快取; (3)隨著使用者使用,資料不斷變化,更新操作比較頻繁,此時建議採用快取;

Angularjs開發的一些方法建議整理

1、如何使用yeoman快速的構建一個Angularjs環境 1.1、安裝node/npm sudo apt-get install nodejs *注意: 1 有些時候安裝nodejs後在/usr/bin/只有一個nodejs可執行檔案,但是很多包

[轉] 從零構建 vue2 + vue-router + vuex 開發環境到入門,實現基本的登入退出功能

這是一個創建於 738 天前的主題,其中的資訊可能已經有所發展或是發生改變。 前言 vue2 正式版已經發布將近一個月了, 國慶過後就用在了公司的兩個正式專案上, 還有一個專案下個月也會採用 vue2 進行重構 選擇它沒什麼理由,如果非要說一個理由 那就是它的中

sau交流學習社群--基於vue2 + vuex + vue-router + webpack + ES6 + axios + sass開發的讀書WebAPP

loveBook 一、前言 loveBook愛上閱讀,是一款webapp的讀小說等書籍的並且閱讀的應用。如果覺得可以,歡迎fork和star。 自己最近在追鬥破蒼穹電視劇,下班時候在地鐵上總聽到有人說,鬥破蒼穹書籍比電視劇好看,於是想弄個看書的webapp, 這樣在手機上看電子書很爽

vue2+vuex+vue-router 快速入門(三) vue 例項介紹

vue 例項介紹   vue 例項分兩種,一種為元件例項,另外一種為根例項。元件例項負責建立個性化元件、而根例項負責把元件渲染到指定的真實的 DOM 結構中。並且 vue 為我們提供了一種特殊的檔案格式 .vue 來建立 元件例項。.vue 檔案格式如下:

基於vue2 + vue-router + vuex 構建的一個新聞類大型單頁面應用 —— 今日頭條

vue2-news 前言 該專案UI模仿今日頭條,但我儘可能地做了許多修改,我不是做UI設計的,如何還看得過去,右上角點個 “star” 支援一下吧�� 該專案包括移動端和native端,移動端共4個頁面,native端共20個頁面,涉及文章的

VUE 全家桶,vue2-vue-router-vuex-axios

VUE全家桶,都有很牽強的用到 http://www.tuicool.com/articles/qEvErm vue2 Vue.js(讀音 /vjuː/,類似於 view) 是一套構建使用者介面的漸進式框架。 vue-router 應用的路由對映 vuex Vuex 是一個專為 Vue.j

了項目的一些心得

代碼 寫代碼 邏輯 解決 慢慢 console 提示 這一 清晰 在這幾周我們在寫以後後臺管理人員的項目 在這期間出現了各種各樣大問題,小問題,對有些 功能代碼實現也熟練不少,但是問題還是挺多的,最典型的就是沒思路,對於剛拿到分配的任務 盡力自己先試試,慢慢入手,實在不行讓

vue2.0父子組件以及非父子組件如何通信

tty rep create pla eve 16px markup div ont 1.父組件 >>> 子組件 父組件數據如何傳遞給子組件呢?可以通過props屬性來實現 父組件: <parent> <child :child-

同時集成百度地圖、定位以及導航遇到的一些

so文件 成了 自己 sel ear 模擬 images 謝謝 function 項目用到的地圖功能有點多,同時集成了地圖、定位以及導航這幾個功能。 每個單獨使用,都很順利,但合在一起用會有問題。 我每次集成百度地圖,都會在http://lbsyun.baidu.com/s