使用TypeScript建立Vue項目

  Vue的靈活性老是讓代碼看起來很是洗練,對TypeScript來講也是一種挑戰, 好在Vue對TypeScript進行了一次全方位的適配。html

  相對於React嚴謹的代碼,Redux囉嗦的樣板代碼,Vue就顯得很是靈活。Vue採用雙向綁定原理,以下圖所示vue

  雙向綁定的好處是這樣的,在數據發生變化的時候,會發佈一個叫「model-update」的事件,相似,當視圖發生變化的時候,會發佈一個叫「ui-update」的事件,Vue自動訂閱了這些事件,並能自動處理好,咱們無需關心究竟是數據變化了仍是UI變化了,Vue都能本身處理好。尤爲是在繪製長的Form表單時,只須要將變量綁定在輸入的模塊上,不管是用戶輸入仍是經過代碼手動賦值,模塊都會自動變化,不須要再去關心每一個輸入的細節。web

  雖然Vue很棒,但對TypeScript的支持並非那麼完美,還有一些細節須要咱們去作。typescript

⒈安裝Vue腳手架npm

npm install -g @vue/cli # OR yarn global add @vue/cli

⒉初始化項目架構

vue create ts-vue

  Vue的組件和React很是不一樣app

  Vue的代碼是這樣的:ide

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script> import HelloWorld from './components/HelloWorld.vue' export default { name: 'app', components: { HelloWorld } } </script>

<style> #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; } </style>

  咱們能夠清晰看到style、script以及html都在一個Vue組件裏,支持TypeScript也只是讓script標籤能兼容TypeScript語法,與Node及React開發中直接修改整個文件名是大相徑庭的。工具

  同時你會發現,Vue的腳手架作的很是簡單易懂,項目結構已經徹底給你部署好了。ui

⒊集成TypeScript

  https://cn.vuejs.org/v2/guide/typescript.html

  *vue-class-component是Vue官方維護的一個庫,可讓咱們在Vue裏面按照類的形式寫代碼

  *若是但願在Vue裏使用props或者watch,推薦安裝vue-property-decorator

  *若是你想在Vue中使用單向數據流的Redux,這也是容許的,官方推薦的工具是Vuex。Redux的架構由State、Reducer以及Action構成的,如圖所示:

  *但Vuex的概念略有不一樣,以下圖所示:

  Mutation至關於Reducer,用getter對State的查詢進行了封裝,使其有一個充滿含義的名字:

const store = new Vuex.Store({ state:{ todos:[ {id:1.text:'...',done:true}, {id:2.text:'...',done:false}, ] }, getters:{ doneTodos: state => { return state.todos.filter(todo => todo.done) } } })
相關文章
相關標籤/搜索