vue cli4.0项目引入typescript的方法


Posted in Javascript onJuly 17, 2020

现有的项目是采用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的文章就介绍到这了,更多相关vue cli4.0引入typescript内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js定时器的使用(实例讲解)
Jan 06 Javascript
JavaScript判断textarea值是否为空并给出相应提示
Sep 04 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
超级简单实现JavaScript MVC 样式框架
Mar 24 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
prototype.js常用函数详解
Jun 18 Javascript
js实现鼠标跟随运动效果
Aug 02 Javascript
js实现无缝轮播图插件封装
Jul 31 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
nuxt.js服务端渲染中axios和proxy代理的配置操作
Nov 06 Javascript
js实现省级联动(数据结构优化)
Jul 17 #Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 #Javascript
jquery实现有过渡效果的tab切换
Jul 17 #jQuery
使用Vue-cli 中为单独页面设置背景图片铺满全屏
Jul 17 #Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 #Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 #Javascript
利用Vue的v-for和v-bind实现列表颜色切换
Jul 17 #Javascript
You might like
php 常用类整理
2009/12/23 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
js实现自动图片轮播代码
2017/03/22 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
flask框架中勾子函数的使用详解
2018/08/01 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
测绘工程个人的自我评价
2013/11/23 职场文书
八年级生物教学反思
2014/01/22 职场文书
副总经理岗位职责
2014/03/16 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
材料化学专业求职信
2014/07/15 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
导游词之唐山景点
2019/12/18 职场文书
JavaScript原型链详解
2021/11/07 Javascript
Redis特殊数据类型bitmap位图
2022/06/01 Redis