说明:

vue3.0搭建的项目,不过没有引入ts,后来需要用到一个插件是用ts写的,所以vue要用到ts。。。

一、安装typescript及loader

npm install typescript ts-loader --save-dev

二、安装vue-property-decorator

npm install vue-property-decorator --save-dev

三、配置vue.config.js

  1. module.exports = {
  2. configureWebpack: {
  3. resolve: { extensions: [".ts", ".tsx", ".js", ".json"] },
  4. module: {
  5. rules: [
  6. {
  7. test: /\.tsx?$/,
  8. loader: 'ts-loader',
  9. exclude: /node_modules/,
  10. options: {
  11. appendTsSuffixTo: [/\.vue$/],
  12. }
  13. }
  14. ]
  15. }
  16. }
  17. }
  1. var path = require('path');
  2. module.exports = {
  3. outputDir:'vuecli3',
  4. publicPath: './',
  5. devServer: {
  6. // 设置主机地址
  7. host: 'localhost',
  8. // 设置默认端口
  9. // port: '8080',
  10. // 打开浏览器
  11. open: true,
  12. port: 9000,
  13. // 设置代理
  14. // proxy: {
  15. // '/api': {
  16. // target: 'http://localhost:8081',
  17. // pathRewrite: {
  18. // '^/api': '/mock'
  19. // }
  20. // }
  21. // }
  22. },
  23. configureWebpack: {
  24. resolve: { extensions: [".ts", ".tsx", ".js", ".json"] },
  25. module: {
  26. rules: [
  27. {
  28. test: /\.tsx?$/,
  29. loader: 'ts-loader',
  30. exclude: /node_modules/,
  31. options: {
  32. appendTsSuffixTo: [/\.vue$/],
  33. }
  34. }
  35. ]
  36. }
  37. }
  38. }

四、新建tsconfig.json放在项目根目录

  1. {
  2. "compilerOptions": {
  3. "target": "es5",
  4. "module": "commonjs",
  5. "strict": true,
  6. "strictNullChecks": true,
  7. "esModuleInterop": true,
  8. "experimentalDecorators": true
  9. }
  10. }

五、在src目录下新建vue-shim.d.ts文件

不加此文件会报错。。

  1. declare module "*.vue" {
  2. import Vue from "vue";
  3. export default Vue;
  4. }

六、运行测试

  1. <template>
  2. <div>
  3. <el-button type="primary" @click="msgBtn">{{msg}}</el-button>
  4. <el-card shadow="always">
  5. {{test}}
  6. </el-card>
  7. </div>
  8. </template>
  9. <script lang='ts'>
  10. import { Component, Vue } from "vue-property-decorator";
  11. export default Vue.extend({
  12. components: {
  13. // TableCom
  14. },
  15. data() {
  16. return {
  17. msg:'typescript'
  18. };
  19. },
  20. created(){
  21. console.log('created',this.msg)
  22. },
  23. mounted() {
  24. console.log('mounted')
  25. },
  26. computed:{
  27. // test: {
  28. // // 需要标注有 `this` 参与运算的返回值类型
  29. // get(): string {
  30. // return this.msg
  31. // },
  32. // set(val: string) {
  33. // this.msg = val
  34. // }
  35. // }
  36. test(): any {
  37. return this.msg
  38. }
  39. },
  40. watch:{
  41. msg(val:any){
  42. console.log('watch',val)
  43. }
  44. },
  45. methods:{
  46. msgBtn(ev:any){
  47. this.msg = "点击了typescript"
  48. console.log('点击事件',ev)
  49. }
  50. }
  51. })
  52. </script>

17、vue-cli3 js项目中引入ts混用(typeScript)的更多相关文章

  1. vue项目中使用ts(typescript)入门教程

    最近项目需要将原vue项目结合ts的使用进行改造,这个后面应该是中大型项目的发展趋势,看到一篇不错的入门教程,结合它并进行了一点拓展记录之.本文从安装到vue组件编写进行了说明,适合入门. 1.引入T ...

  2. laravel+vue组合的项目中引入ueditor(打包成组件形式)

    前言:最近写东西需要用到ueditor,并且需要是在vue组件中引入. (本博客默认你已经配置了laravel+vue的项目环境,如果还没有配置好的的小伙伴,可以看看我的另一篇博客,链接: http: ...

  3. 在 vue cli3 的项目中配置双服务,模拟 ajax 分页请求

    最近安装了下vue cli3版本,与 cli 2 相比,文件少了,以前配置方法也不管用了.demo 中的大量的数据,需要做成 ajax 请求的方式来展示数据,因此,需要启动两个服务,一个用作前端请求, ...

  4. 在vue项目中引入jquery

    在vue项目中引入jquerycnpm install jquery --save在main.js中引入,加入下面这行代码:import 'jquery'注:有些项目是按需加载的,在main.js里面 ...

  5. 【vue】如何在 Vue-cli 创建的项目中引入 iView

    根据vue项目的搭建教程,以下记录如何在Vue-cli创建的项目中引入iView. 1)iView的安装,在项目下使用 npm 安装iView cnpm install  iview  --save ...

  6. 【vue】如何在 Vue-cli 创建的项目中引入iView

    根据vue项目的搭建教程,一下记录下如何在Vue-cli创建的项目中引入iView. 1)安装iView,在项目下 cnpm install  iview  --save 2 ) 在 webpack ...

  7. 在vue项目中引入阿里图标库小记

    使用Vue技术栈开发不仅效率高,而且很友好,而且还有很多基于vue的UI框架,例如:element等,但是这类框架美中不足的是,图标太少.为了解决这个问题,不得不引入第三方字体库,今天以阿里图标库为例 ...

  8. vue项目中引入Sass

    Sass作为目前成熟,稳定,强大的css扩展语言,让越来越多的前端工程师喜欢上它.下面介绍了如何在vue项目 中引入Sass. 首先在项目文件夹执行命令 npm install vue-cli -g, ...

  9. 前端学习笔记系列一:10整体移动vscode代码块、VSCode 使用 stylus,配置格式化设置、在vue项目中引入bootstrap

    1.整体移动vscode代码块 凭借操作的经验我们能够轻松地知道将代码整体往右移只需选中代码按Tab键即可.其实往左移也很简单: 选中之后按下 shift+Tab键 即可. 2.VSCode 使用 s ...

随机推荐

  1. piplinedb 团队加入confluen

    这个消息对于使用pipelinedb 的人来说,可能有点不好,因为官方已经明确说明了,pipelinedb 截止到1.0 版本,将不再维护了, 基本就要靠社区了,但是pipelinedb 团队还是比较 ...

  2. HTML5全屏操作API

    一.定义:HTML5规范允许自定义网页上的任一元素全屏显示,存在兼容问题 二.使用: ①基本: Node.RequestFullScreen()开启全屏显示 Node.CancelFullScreen ...

  3. mysql 运算操作符

    Name Description AND, && Logical AND = Assign a value (as part of a SET statement, or as par ...

  4. shell脚本之文件操作

    文件测试运算符 文件测试运算符用于检测 Unix 文件的各种属性. 下面最常用的是 -f 参数 来检查是否是文件 #!/bin/bash #start nginx php-fpm list1=&quo ...

  5. Cogs 763. [USACO Open09] 数字的游戏(博弈)

    [USACO Open09] 数字的游戏 ★☆ 输入文件:cdgame.in 输出文件:cdgame.out 简单对比 时间限制:1 s 内存限制:128 MB Bessie正跟FJ玩一个数字游戏,她 ...

  6. Day11:Flex布局

    参考: 来源:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html 网页布局是css的一个重点. 盒子模型 display属性 positi ...

  7. jmeter非GUI界面常用参数详解

    压力测试或者接口自动化测试常常用到的jmeter非GUI参数,以下记录作为以后的参考 讲解:非GUI界面,压测参数讲解(欢迎加入QQ群一起讨论性能测试:537188253) -h 帮助 -n 非GUI ...

  8. Pytest权威教程-更改标准(Python)测试发现

    目录 更改标准(Python)测试发现 在测试收集过程中忽略路径 测试期间收集的测试取消 保留从命令行指定的重复路径 更改目录递归 更改命名约定 将cmdline参数解释为Python包 找出收集的东 ...

  9. 【2019.10.17】十天Web前端程序员体验(软件工程实践第五次作业)

    结对信息.具体分工 Github地址:https://github.com/MokouTyan/131700101-031702425 学号 昵称 主要负责内容 博客地址 131700101 莫多 代 ...

  10. java 静态数组 和非静态数组的区别

    区别:1,数组创建时间不同,静态的是一定义出来就创建了,动态的则是定义时不创建,使用时才创建,一定意义上节省了内存空间.2,使用场景不同,一开始就知道数组长度的使用静态初始化,反之,动态初始化. 静态 ...