温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue cli4.0项目如何引入typescript

发布时间:2020-07-18 09:15:58 来源:亿速云 阅读:247 作者:小猪 栏目:开发技术

这篇文章主要为大家展示了vue cli4.0项目如何引入typescript,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

  现有的项目是采用vue cli4.0脚手架生成的,现在想要引入typescript。

  1.执行安装命令

npm install --save-dev typescript
npm install --save-dev @vue/cli-plugin-typescript

  2.根目录下新建 tsconfig.json

{
 "compilerOptions": {
  "target": "esnext",
  "module": "esnext",
  "strict": true,
  "importHelpers": true,
  "moduleResolution": "node",
  "experimentalDecorators": true,
  "esModuleInterop": true,
  "allowSyntheticDefaultImports": true,
  "sourceMap": true,
  "baseUrl": ".",
  "allowJs": false,
  "noEmit": true,
  "types": ["webpack-env"],
  "paths": {
   "@/*": ["src/*"]
  },
  "lib": ["esnext", "dom", "dom.iterable", "scripthost"]
 },
 "exclude": ["node_modules"]
}

  3.新增 shims-vue.d.ts
根目录下新建 shims-vue.d.ts,让 ts 识别 *.vue 文件,文件内容如下:

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

  4.修改入口文件后缀

复制代码 代码如下:
src/main.js => src/main.ts

  5.改造 .vue 文件

src/main.js => src/main.ts

  加上 lang=ts 可以让webpack识别此段代码为 typescript

  6.使用装饰器插件

  vue-class-component:强化 Vue 组件,使用 TypeScript装饰器 增强 Vue 组件,使得组件更加扁平化
  vue-property-decorator:在 vue-class-component 上增强更多的结合 Vue 特性的装饰

  Demo:

import { Vue, Component ,Watch} from 'vue-property-decorator';
@Component({
 components: { Loading }
})
export default class App extends Vue{
  old_back:object=null,
 transitionName:string = "slide-right";
 get ...mapState("base", ["loadingStatus"]);
 @Watch('$route')
 onChangeValue(to:object, from:object){
   // console.log('$route', to, from)
   const noBack = to.meta.noBack; // 监听路由变化时的状态为前进还是后退
   // 去终节点左,从终节点过来右
   if (to.meta.last) {
    this.transitionName = "slide-left";
   } else if (from.meta.last) {
    this.transitionName = "slide-right";
   } else if (from.meta.leaf) {
    // 从其它叶子页面过来的,往右
    this.transitionName = "slide-right";
   } else {
    if (noBack) {
     // 去到不需要返回的界面往右
     this.transitionName = "slide-right";
    } else {
     this.transitionName = "slide-left";
    }
   }
 }
 @Watch('loadingStatus')
 onChangeValue(newVal: string){
   if (newVal) {
    setTimeout(_ => {
     this.setLoading(false);
    }, 1500);
   }
 }
   // 弹出系统提示对话框
  showAlert(msg:string) {
   plus.nativeUI.alert(
    msg,
    function() {
     // console.log("User pressed!");
    },
    "报警详情",
    "确定"
   );
  }
}

以上就是关于vue cli4.0项目如何引入typescript的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI