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

我的開源中國博客:https://my.oschina.net/keysITer/blog/834287

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

餓了麼點餐系統

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

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

GitHub地址:https://github.com/SimonZhangITer/VueDemo_Sell_Eleme

## 演示
掃二維碼在手機上查看效果更好

項目截圖

構建

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)

GitHub地址:https://github.com/SimonZhangITer/VueDemo_Sell_Eleme

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章