構建
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,可以進行數據上的通信。 比如存儲一些公共變量或者是不同組件間的數據處理等。
這個有一些高級用法在這里不細說,想要了解的可以去官方文檔看,有中文版本(https://vuex.vuejs.org/zh-cn/)。
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++ } } }