vue增加typescript支持

1、用vue-cli创建项目 参考网址:https://www.cnblogs.com/l-y-h/p/11241503.html
2、在根目录下增加tsconfig.ts文件
在根目录下增加shims-vue.d.ts文件
配置参数参考:https://juejin.im/post/6844903967999131662
3、下载typescript依赖包
npm i ts-loader typescript tslint tslint-loader tslint-config-standard --save-dev
参考网址:https://blog.csdn.net/hellow_world_/article/details/89355328
4、修改webpack.base.conf.js
在 rules: 下增加ts支持

      // 增加tslint-loader
      {
        test: /\.ts$/,
        exclude: /node_modules/,
        enforce: 'pre',
        loader: 'tslint-loader'
      },
      // 增加ts-loader,用于解析ts
      {
        test: /\.tsx?$/,
        loader: 'ts-loader',
        exclude: /node_modules/,
        options: {
          appendTsSuffixTo: [/\.vue$/],
        }

5、具体修改代码
1、将src/main.js 改为main.ts
main.js 文件内容

 import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

main.ts 文件内容

import Vue from 'vue';
import App from './App.vue';
import router from '@/router/index';

Vue.config.productionTip = false

export default new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

2、App.vue 修改前

	<template>
	  <div id="app">
	    <router-view/>
	  </div>
	</template>
	
	<script>
	export default {
	  name: 'App'
	}
	</script>

App.vue 修改后

<template>
  <div id="app">
    <router-view />
  </div>
</template>

<script lang="ts">
import Vue from 'vue';
export default class App extends Vue {
}
</script>

3、HelloWorld.vue 修改前

	<template>
	  <div id="app">
	    <router-view/>
	  </div>
	</template>
	
	<script>
	export default {
	  name: 'App'
	}
	</script>

HelloWorld.vue 修改后

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

4、router 文件下 index.js 改为index.ts index.js修改前

		import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    }
  ]
})

index.ts 修改后

	import Vue, { AsyncComponent as Async } from 'vue';
import Router from 'vue-router';

const Page1: Async = (): any => import('@/components/HelloWorld.vue');

Vue.use(Router)

export default new Router({
    mode: 'hash',
    base: '/',
    routes: [
        {
            path: '/',
            name: 'page1',
            component: Page1
        }
    ]
})

修改完成 执行 npm run dev 页面启动 输出 hello world。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值