Vue的灵活性总是让代码看起来非常洗练,对TypeScript来说也是一种挑战, 好在Vue对TypeScript进行了一次全方位的适配。

  相对于React严谨的代码,Redux啰嗦的样板代码,Vue就显得非常灵活。Vue采用双向绑定原理,如下图所示

  双向绑定的好处是这样的,在数据发生变化的时候,会发布一个叫“model-update”的事件,类似,当视图发生变化的时候,会发布一个叫“ui-update”的事件,Vue自动订阅了这些事件,并能自动处理好,我们无需关心到底是数据变化了还是UI变化了,Vue都能自己处理好。尤其是在绘制长的Form表单时,只需要将变量绑定在输入的模块上,无论是用户输入还是通过代码手动赋值,模块都会自动变化,不需要再去关心每个输入的细节。

  虽然Vue很棒,但对TypeScript的支持并不是那么完美,还有一些细节需要我们去做。

⒈安装Vue脚手架

  1. npm install -g @vue/cli
  2. # OR
  3. yarn global add @vue/cli

⒉初始化项目

  1. vue create ts-vue

  Vue的组件和React非常不同

  Vue的代码是这样的:

  1. <template>
  2. <div id="app">
  3. <img alt="Vue logo" src="./assets/logo.png">
  4. <HelloWorld msg="Welcome to Your Vue.js App"/>
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. import HelloWorld from './components/HelloWorld.vue'
  10.  
  11. export default {
  12. name: 'app',
  13. components: {
  14. HelloWorld
  15. }
  16. }
  17. </script>
  18.  
  19. <style>
  20. #app {
  21. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  22. -webkit-font-smoothing: antialiased;
  23. -moz-osx-font-smoothing: grayscale;
  24. text-align: center;
  25. color: #2c3e50;
  26. margin-top: 60px;
  27. }
  28. </style>

  我们可以清晰看到style、script以及html都在一个Vue组件里,支持TypeScript也只是让script标签能兼容TypeScript语法,与Node及React开发中直接修改整个文件名是截然不同的。

  同时你会发现,Vue的脚手架做的非常简单易懂,项目结构已经完全给你部署好了。

⒊集成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的查询进行了封装,使其有一个充满含义的名字:

  1. const store = new Vuex.Store({
  2. state:{
  3. todos:[
  4. {id:1.text:'...',done:true},
  5. {id:2.text:'...',done:false},
  6. ]
  7. },
  8. getters:{
  9. doneTodos: state => {
  10. return state.todos.filter(todo => todo.done)
  11. }
  12. }
  13. })

  

使用TypeScript创建Vue项目的更多相关文章

  1. 使用vue-cli脚手架创建vue项目

    使用vue-cli脚手架创建vue项目 首先,你已经安装了node. 使用vue-cli@2 创建项目 执行 命令: npm i -g vue-cli@2 //全局安装vue-cli@2脚手架 : v ...

  2. 使用vue-cli创建vue项目

    vue-cli是官方发布的vue.js项目脚手架工具,使用它可以快速创建vue项目,github地址:https://github.com/vuejs/vue-cli 1.安装vue-cli //设置 ...

  3. Vue2+Webpack创建vue项目

    相比较AngularJS和ReactJS,VueJS一直以轻量级,易上手称道.MVVM的开发模式也使前端从原先的DOM中解放出来,我们在不需要在维护视图和数据的统一上花大量时间,只需要关注于data的 ...

  4. 通过脚手架创建Vue项目

    第一步 准备工作 1.下载安装Node.js 验证是否安装的方法,在命令行输入node -v 2.安装Vue 在命令行输入npm install -g @vue/cli 查看Vue版本号 npm vu ...

  5. Linux下创建vue项目

    前提:已经安装了node.js.cnpm 1.全局安装vue脚手架vue-cli:#cnpm install -g vue-cli 注意:全局安装没有建立软链接前是无法使用刚刚安装的vue命令的,所以 ...

  6. Django day32 跨域问题,创建vue项目,axios的使用

    一:跨域问题 1.同源策略(浏览器的安全策略) 只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了 2.cors:只要服务器实现了CORS,就可以 ...

  7. VUE,基于vue-cli搭建创建vue项目

    前提:必须安装node.js,官方地址:https://nodejs.org/en/ 然后安装vue-cli 安装方式:cmd命令行安装:打开cmd命令符输入进行全局安装脚手架:npm install ...

  8. TypeScript编写Vue项目结构解析

    使用TypeScript编写Vue项目也已经有了一段时间,笔者在刚刚使用TypeScript时候也是很茫然,不知道从何下手,感觉使用TypeScript写项目感觉很累赘并不像JavaScript那么灵 ...

  9. 安装配置nodejs并创建Vue项目

    一.下载安装node.js 1.Node.js 官方网站下载:https://nodejs.org/en/ 2.傻瓜式安装 双加安装包,除了根据自己的需要选择安装位置外,都默认下一步. 3.验证安装 ...

随机推荐

  1. meshing-网格加密

    ​原视频下载:http://yunpan.cn/cujvm8VbAPJZi  访问密码 0d3b

  2. 数据结构Java版之堆&堆排序(九)

    堆分为大顶堆,和小顶堆. 什么是堆? 堆可以看成是一棵二叉树,二叉树的元素是一个数组不断的从左到右轮训放置.如果是大顶堆,则大的数放上面一层,小的数放下面一层.上一层的数,一定大于下一层的数.小顶堆则 ...

  3. certification on windows and

    https://jingyan.baidu.com/article/335530dae0eb2319ca41c378.html

  4. 第十四周助教工作总结——NWNU李泓毅

    助教博客链接:https://www.cnblogs.com/NWNU-LHY/ 本次作业的要求:团队项目需求改进与系统设计:https://www.cnblogs.com/nwnu-daizh/p/ ...

  5. adb-andorid记录当前手机的日志当前显示的app进程及activity,

    adb logcat -v time> /home/sumsang.log adb shell dumpsys window | grep mCurrentFocus

  6. laravel 通过ftp上传的时候报错 Use of undefined constant FTP_BINARY - assumed 'FTP_BINARY

    用Laravel中的filesystems里面的ftp上传文件时报错.在windows上开发,文件上传的时候碰到上面的问题,搜了些资料,发现是php7的ftp拓展默认未开启. filesystems是 ...

  7. PHP实现执行定时任务

    首先用命令检查服务是否在运行 systemctl status crond.service 如果服务器上没有装有crontab ,则可以执行 yum install vixie-cron yum in ...

  8. OptaPlanner 试验

    OptaPlanner - Constraint satisfaction solver (Java™, Open Source)https://www.optaplanner.org/ jboss/ ...

  9. PHP 输出日志到文件 DEMO

    首先需要确保输出文件有权限写入,一般设置权限为 chown -R nginx.nginx 输出的文件路径 如果以上方法还是无效,可以直接将文件设置有777,但是这种方式只能用于测试环境 chmod - ...

  10. postgre查询表和记录数,查表字段

    select relname as TABLE_NAME, reltuples as rowCounts from pg_class where relkind = 'r' and relnamesp ...