Vue2.0+TypeScript基础用法

由于后期项目要使用ts,所以先学习下,这是第一次使用ts,要是有不足之处,还请多指教。

最开始因为webpack版本问题搭了好几次没成功,果然失败乃成功之母,古人诚不欺我,每次学习都是在写bug解决bug继续创造bug的循环里痛并快乐着。

由于使用的是Vue-cli2 + webpack3.6.0版本,按照webpack3的方式来搭建的,所以安装时一定要注意自己的版本与插件版本哈。

前边儿初始化Vue项目啥的操作俺们就省了(里边儿的序号没有什么特别大的意义)

npm i vue-class-component vue-property-decorator --save  // 安装vue的官方插件

npm i ts-loader@3.1.1  typescript@2.7.2  --save-dev //(此处安装已经指定版本了的)
npm i tslint tslint-loader tslint-config-standard --save-dev  // 此处可以先不安装,但是以后也还是会装上的

ts-loader:会检索当前目录下的tsconfig.json文件,根据里边儿定义的规则去解析.ts或.tsx文件(跟.babelrc的作用差不多)

ts-lint-loader 作用跟eslint-loader一样,那么问题来了tsconfig.json这个文件哪来的?这个不急待会就说了。

1、先上build文件夹下的webpack.base.conf.js文件将里面的部分代码替换成下边儿的:

在module里边儿的rules加上

代码:

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

 2、在项目根路径(.babelrc同级目录)下添加tsconfig.json,作用上面说过了。

{
    "include": [ "src/**/*" ],
    "exclude": [ "node_modules" ],
    // 编译选项
    "compilerOptions": {
        // 是否以严格模式解析
        // "strict": true, 
        // 解析非相对模块名的基准目录
        // "baseUrl": ".",
        // 输出目录
        // "outDir": "./output",
        // 移除注释
        // "removeComments": true,
        // 指定特殊模块的路径,如jQuery
        // "paths": {
            // "jquery": [
            //     "node_modules/jquery/dist/jquery"
            //   ]
        // },
        // 运行从没有设置默认到处的模块中默认导入
        "allowSyntheticDefaultImports": true,
        // 启用装饰器
        "experimentalDecorators": true,
        // 运行便于JavaScript文件
        "allowJs": true,
        // 采用的模块系统
         "module": "commonjs",
        // 编译输出目标es版本
        "target": "es5",
        // 如何处理模块
        "moduleResolution": "node",
        // 将每个文件作为单独的模块
        "isolatedModules": true,
        // 编译过程中需要引入的库文件的列表
        "lib": [
            "dom",
            "es5",
            "es6",
            "es7",
            "es2015.promise"
        ],
         // 是否包含可以用于 debug 的 sourceMap
        "sourceMap": true,
        "pretty": true
    }
}

上边儿是我的配置,仅做参考

3、若是安装了tslint-loader则必须在根目录下配置tslint.json(引入ts的规范)文件

{
  "extends": "tslint-config-standard",
  "globals": {
    "require": true
  }
}

4、在src目录下新建shims-vue.d.ts(告诉typescript *.vue文件交给Vue模块处理),因为typescript默认不支持*.vue文件

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

代码中导入*.vue文件时一定要加上.vue后缀!!!如:

import HelloWorld from '@/components/HelloWorld.vue'

5、改写 .vue文件

先将main.js修改为main.ts,里面的内容修改为

所有的.vue文件中的script标签加上 lang="ts";

APP.vue文件

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  name: 'App'
})
</script>

router/index.js文件改为router/index.ts,里边儿的内容改为

 

.vue 文件修改(只修改了script部分,其他的之前的写法是一样一样的)

6、使用mixins

在main.ts中引入后,在组件里面中的HTML中可以使用: {{ toDecimal(number, 2) }} ;也可this.toDecimal(number, 2)

7、axios拦截器

index.js可以忽略,是我改造时留的备份

8.统一管理api地址

 

如上图配置使用方式为:this.$axios.get(this.$location.apiUrl(你自己的api地址));请求方式可以自定

参考链接:https://segmentfault.com/a/1190000011744210?utm_source=tag-newest

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 + TypeScript 是一种常用的前端开发技术组合,它结合了Vue框架的便捷性和TypeScript的类型检查能力,可以提高项目的可维护性和开发效率。下面是一些Vue3 + TypeScript项目经验的介绍: 1. 项目初始化:使用Vue CLI创建一个Vue3项目,并选择TypeScript作为项目的语言。这样可以自动生成一些基本的配置和文件结构,方便快速开始开发。 2. 类型定义:在Vue3 + TypeScript项目中,可以使用TypeScript的类型系统来定义组件的props、data、computed等属性的类型,以及事件的参数类型等。这样可以在编码过程中及早发现潜在的类型错误,提高代码的健壮性。 3. 组件开发:在Vue3 + TypeScript项目中,可以使用装饰器(decorators)来定义组件选项,例如使用@Prop来定义props属性的类型,使用@Emit来定义事件的参数类型。这样可以更清晰地描述组件的接口和行为。 4. 路由管理:在Vue3 + TypeScript项目中,可以使用Vue Router进行路由管理。通过定义路由的类型和参数类型,可以在编码过程中获得更好的类型提示和错误检查。 5. 状态管理:在Vue3 + TypeScript项目中,可以使用Vuex进行状态管理。通过定义状态的类型和操作的参数类型,可以提高代码的可读性和可维护性。 6. 第三方库的使用:在Vue3 + TypeScript项目中,可以使用第三方库,并为其编写类型声明文件,以获得更好的类型检查和代码提示。例如,可以使用axios发送HTTP请求,并为其编写类型声明文件,以确保请求参数和响应数据的类型正确。 7. 单元测试:在Vue3 + TypeScript项目中,可以使用Jest等测试框架进行单元测试。通过编写类型安全的测试用例,可以提高代码的质量和可靠性。 8. 构建和部署:在Vue3 + TypeScript项目中,可以使用Webpack等构建工具进行项目的打包和优化。通过配置合适的TypeScript编译选项和Webpack插件,可以生成高效的生产环境代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值