当前位置: 58彩票app下载 > 计算机网络 > 正文

vue与TypeScript集成配置最简教程

时间:2019-09-23 11:45来源:计算机网络
前言 vue与TypeScript集成配置最简教程 [TOC] Vue的合乌克兰(Ukraine)语档未有提交与TypeScript集成的具体步骤,英特网别的的科目不是存在难题就是与vue-cli建设构造的项目存在差别,令人不

前言

vue与TypeScript集成配置最简教程

[TOC]

Vue的合乌克兰(Ukraine)语档未有提交与TypeScript集成的具体步骤,英特网别的的科目不是存在难题就是与vue-cli建设构造的项目存在差别,令人不许动手。

前言

Vue的法定文书档案未有提交与TypeScript集成的具体步骤,网络别的的科目不是存在难题就是与vue-cli创建的门类存在差距,令人得不到入手。

上边作者就交给vue-cli建设构造的等级次序与TypeScript集成的最简配置。

上面笔者就提交vue-cli创建的类型与TypeScript集成的最简配置。

初始化项目

先是用vue-cli建构webpack项目。这里为了演示方便,没有张开router和eslint等,可以依靠本人处境张开。

# vue init webpack vue-typescript

? Project name vue-typescript
? Project description A Vue.js project
? Author
? Vue build standalone
? Install vue-router? No
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No

设置TypeScript相关依赖和项目其他注重,用npm或cnpm

# cd /vue-typescript
# npm install typescript ts-loader --save-dev
# npm install

开始化项目

配置

修改目录下bulid/webpack.base.conf.js文件,在文件内module>rules累加以下准则

{
  test: /.tsx?$/,
  loader: 'ts-loader',
  exclude: /node_modules/,
  options: {
    appendTsSuffixTo: [/.vue$/],
  }
},

在src目录下新建贰个文本vue-shims.d.ts,用于识别单文件vue内的ts代码

declare module "*.vue" {
  import Vue from "vue";
  export default Vue;
}

在品种根目录下成立TypeScript配置文件tsconfig.json

{
  "compilerOptions": {
    "strict": true,
    "module": "es2015",
    "moduleResolution": "node",
    "target": "es5",
    "allowSyntheticDefaultImports": true,
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

重命名src下的main.jsmain.ts

修改webpack.base.conf.js下的entry>app'./src/main.ts'

修改src下的App.vue文件,在<script>节点中增多lang=ts属性

<script lang="ts">

率先用vue-cli建构webpack项目。这里为了演示方便,未有展开router和eslint等,能够依附作者情形展开。

测试

上面可以测量试验是不是合併成功,编辑src/components/Hello.vue文本,修改<script>标签的故事情节为TypeScript的情势

<script lang="ts">
  import Vue, {ComponentOptions} from 'vue'
  export default {
    name: 'hello',
    data() {
      return {
        msg: 'this is a typescript project now'
      }
    }
  } as ComponentOptions<Vue>
</script>

运营项目

# npm run dev

测量检验成功,今后是二个TypeScipt项目了

图片 1

# vue init webpack vue-typescript

? Project name vue-typescript
? Project description A Vue.js project
? Author
? Vue build standalone
? Install vue-router? No
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No

进阶

配备官方推荐的vue-class-component,https://cn.vuejs.org/v2/guide/typescript.html

安装开拓重视

# npm install --save-dev vue-class-component

修改ts配置文件,扩张以下两项配置

"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,

改写我们的Hello组件

<script lang="ts">
  import Vue from 'vue'
  import Component from 'vue-class-component'
  @Component
  export default class Hello extends Vue {
    msg: string = 'this is a typescript project now'    
  }
</script>

使用vue-class-component后,初始数据足以平昔证明为实例的天性,而不需放入data() {return{}}中,组件方法也能够间接评释为实例的办法,如官方实例,更多利用办法能够参照其官方文书档案

https://github.com/vuejs/vue-class-component#vue-class-component

import Vue from 'vue'
import Component from 'vue-class-component'
// @Component 修饰符注明了此类为一个 Vue 组件
@Component({
  // 所有的组件选项都可以放在这里
  template: '<button @click="onClick">Click!</button>'
})
export default class MyComponent extends Vue {
  // 初始数据可以直接声明为实例的属性
  message: string = 'Hello!'
  // 组件方法也可以直接声明为实例的方法
  onClick (): void {
    window.alert(this.message)
  }
}

安装TypeScript相关注重和类型别的依赖,用npm或cnpm

# cd /vue-typescript
# npm install typescript ts-loader --save-dev
# npm install

配置

修改目录下bulid/webpack.base.conf.js文件,在文书内module>rules增添以下法规

{
 test: /.tsx?$/,
 loader: 'ts-loader',
 exclude: /node_modules/,
 options: {
  appendTsSuffixTo: [/.vue$/],
 }
},

在src目录下新建多个文件vue-shims.d.ts,用于识别单文件vue内的ts代码

declare module "*.vue" {
 import Vue from "vue";
 export default Vue;
}

在项目根目录下建设构造TypeScript配置文件tsconfig.json

{
 "compilerOptions": {
  "strict": true,
  "module": "es2015",
  "moduleResolution": "node",
  "target": "es5",
  "allowSyntheticDefaultImports": true,
  "lib": [
   "es2017",
   "dom"
  ]
 }
}

重命名src下的main.jsmain.ts

修改webpack.base.conf.js下的entry>app为'./src/main.ts'

修改src下的App.vue文件,在

<script lang="ts">

测试

上边能够测验是不是合併成功,编辑src/components/Hello.vue文件,修改

<script lang="ts">
 import Vue, {ComponentOptions} from 'vue'
 export default {
  name: 'hello',
  data() {
   return {
    msg: 'this is a typescript project now'
   }
  }
 } as ComponentOptions<Vue>
</script>

运维品种

# npm run dev

测验成功,未来是八个TypeScipt项目了

 图片 2

进阶

布局官方推荐的vue-class-component,

设置开荒依赖

# npm install --save-dev vue-class-component

修改ts配置文件,扩大以下两项配置

"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,

改写大家的Hello组件

<script lang="ts">
 import Vue from 'vue'
 import Component from 'vue-class-component'
 @Component
 export default class Hello extends Vue {
  msg: string = 'this is a typescript project now'  
 }
</script>

行使vue-class-component后,伊始数据能够直接注解为实例的属性,而不需放入data() {return{}}中,组件方法也足以直接证明为实例的艺术,如官方实例,更加的多应用办法能够参照其法定文书档案

import Vue from 'vue'
import Component from 'vue-class-component'
// @Component 修饰符注明了此类为一个 Vue 组件
@Component({
 // 所有的组件选项都可以放在这里
 template: '<button @click="onClick">Click!</button>'
})
export default class MyComponent extends Vue {
 // 初始数据可以直接声明为实例的属性
 message: string = 'Hello!'
 // 组件方法也可以直接声明为实例的方法
 onClick (): void {
  window.alert(this.message)
 }
}

上述正是本文的全体内容,希望对大家的读书抱有帮衬,也盼望大家多多帮助脚本之家。

您恐怕感兴趣的篇章:

  • Vue2 Vue-cli中央银行使Typescript的配备详解

编辑:计算机网络 本文来源:vue与TypeScript集成配置最简教程

关键词: