关于Vue2 Vue-cli中使用Typescript的配置介绍

这篇文章主要介绍了关于vue2 vue-cli中使用typescript的配置介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

Vue作为前端三大框架之一截至到目前在github上以收获44,873颗星,足以说明其以悄然成为主流。下面这篇文章主要给大家介绍了关于Vue2 Vue-cli中使用Typescript的配置的相关资料,需要的朋友可以参考下。

前言

因为最近公司的团队热衷于vue框架,新项目想着练练typescript,于是开始了vue+ts的踩坑之路…本文意在为和我有一样想法的伙伴们省去踩坑的时间,下面话不多说了,来一起看看关于Vue2 Vue-cli中利用Typescript需要的配置是什么吧。

一、初步配置

立即学习“前端免费学习笔记(深入)”;

首先安装官方插件vue-class-component,vue-property-decorator,配置webpack。
webpack配置如下:

修改入口文件

entry: { app: './src/main.ts'}

登录后复制

resolve部分:

extensions: ['.js', '.vue', '.json', '.ts', '.tsx']

登录后复制

配置loader

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

登录后复制

配置tsconfig.json

{ "include": [ "src/**/*" ], "exclude": [ "node_modules" ], "compilerOptions": { "allowSyntheticDefaultImports": true, "experimentalDecorators": true, "allowJs": true, "module": "es2015", "target": "es5", "moduleResolution": "node", "experimentalDecorators": true, "isolatedModules": true, "lib": [  "dom",  "es5",  "es2015.promise" ], "sourceMap": true, "pretty": true }}

登录后复制

二、实战!

配好配置只是第一步,在项目里跑起来才是王道。

在vue文件的script标签里添加lang=’ts’

因为ts-loader不像配过loader的webpack一样知道vue,html等文件是什么东西,你跑起来后会报模块无法解析的错误,所以还需要配置.d.ts声明文件

vue的如下配置

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

登录后复制

你也可以为其它的非js模块配置.d.ts文件如html(告诉ts-loader把html理解成字符串)

declare module "*.html" { let template: string; export default template;}

登录后复制

配置好之后ts就能理解这些模块了

从vue-property-decorator引入需要用到的模块

(一般只用到Component, Vue, Watch, Prop这四个,其它3个没用到也没研究,知道的大佬可以解释下。)

import { Component, Vue, Watch } from ‘vue-property-decorator’

这里拿之前写的sidbar的代码当个栗子:

class HoverTopElem { leaveTop: number = -200 top: number = null height: number = null show(e) { this.top = e.target.getBoundingClientRect().top this.height = e.target.clientHeight } hidden() { this.top = this.leaveTop }}@Component({ name: 'sidebar', template: template, components: { sidebarItem }})export default class Sidebar extends Vue { SidebarMenu: any = SidebarMenu hoverTopElem: HoverTopElem = new HoverTopElem() activeListItemName: string = null activeRouteItemRoute: string = null get _activeRouteItemRoute(): string { return this.$route.path } @Watch('_activeRouteItemRoute', { immediate: true }) onRouteChanged(val: any) { this.activeRouteItemRoute = val } changeList(param) { this.activeListItemName = param } changeRoute(param) { this.activeRouteItemRoute = param }}

登录后复制

元数据写在@Component配置里,像名字,用到的组件啥的,然后说下之前vue里用到的各个实例属性方法在这里怎么用:

data: 这个是最常用的,像上面的SidebarMenu(这里一共声明了4个),注意这里声明的变量一定要赋一个值,没有就null,不能是undefined,不然这个数据就不是响应的。因此HoverTopElem类里的属性也是要有初始值,不然这些属性也不是响应的

computed: 这里就是get函数,注意tsconfig.jsonp不配置”target”: “es5″这里会报错

prop: vue-property-decorator里面有Prop模块,也可以在元数据声明这个prop,然后在类里声明一下这个变量就可以了,个人推荐第一种

watch: vue-property-decorator里的Watch模块

methods: 方法像data一样直接写在类里就可以了(注意不要和周期钩子同名)

各种生命周期钩子: 直接写就行

路由钩子见vue-class-component文档

至此,基本就可以像原来一样写vue组件了。

当然如果要想和原来一样写ts,还需要配置tslint,不然一些ts语法不会被识别,像public修饰符之类的,因为ts还不是很熟练就没想着配,有兴趣的朋友可以试试。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

如何解决关于Vue背景图打包之后访问路径错误的问题

如何解决关于Vue背景图打包之后访问路径错误的问题

如何解决关于Vue背景图打包之后访问路径错误的问题

以上就是关于Vue2 Vue-cli中使用Typescript的配置介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2748080.html

(0)
上一篇 2025年3月8日 04:34:50
下一篇 2025年3月5日 13:22:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 实现简单的vue无限加载指令的方法

    这篇文章主要介绍了关于实现简单的vue无限加载指令的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 vue 中的自定义指令是对底层 dom 进行操作,下面以实现滚动到底部加载数据,实现无限加载来介绍如何自定义一个简单的指…

    编程技术 2025年3月8日
    200
  • vue如何实现前进刷新后退不刷新的效果

    这篇文章主要介绍了vue实现前进刷新,后退不刷新效果,即加载过的界面能缓存起来(返回不用重新加载),关闭的界面能被销毁掉(再进入时重新加载)。本文给大家分享实现思路,需要的朋友可以参考下 最近在用vue尝试着做移动端的项目。希望实现前进刷新…

    编程技术 2025年3月8日
    200
  • 关于Vue2 SSR缓存 Api 数据的方法

    本篇文章主要介绍了vue2 ssr 缓存 api 数据,内容挺不错的,现在分享给大家,也给大家做个参考。 本文介绍了Vue2 SSR 缓存 Api 数据,分享给大家,具体如下: 1. 安装缓存依赖: lru-cache npm instal…

    编程技术 2025年3月8日
    200
  • 基于Vue框架vux组件库实现上拉刷新功能的介绍

    这篇文章主要为大家详细介绍了基于vue框架vux组件库实现上拉刷新功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近公司在研发app,选择了基于Vue框架的vux组件库,现总结在实现上拉刷新功能遇到的坑: 1.问题:只刷新一次,解…

    编程技术 2025年3月8日
    200
  • 如何解决vue-cli中stylus无法使用的问题

    这篇文章主要介绍了解决vue-cli中stylus无法使用的问题方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在写基于vue-cli的vue项目时,遇到一个小坑,css用了stylus,但是在编译时候总是报错: 来来回回折腾了数十…

    2025年3月8日
    200
  • 关于vue-admin和后端(flask)分离结合的解析

    本篇文章主要介绍了详解vue-admin和后端(flask)分离结合的例子,内容挺不错的,现在分享给大家,也给大家做个参考。 本文介绍了vue-admin和后端(flask)分离结合的例子,分享给大家,具体如下 感觉 vue-admin 界…

    2025年3月8日
    200
  • Vue 中如何使用 CSS Modules

    这篇文章主要介绍了Vue 中使用 CSS Modules优雅方法,本文文字结合实例代码的形式给大家介绍的非常详细,需要的朋友可以参考下 CSS Modules:局部作用域 & 模块化 CSS Modules 为每一个局部类赋予全局唯…

    编程技术 2025年3月8日
    200
  • 如何解决Vue 2.0在IE11中打开项目页面空白的问题

    这篇文章主要给大家介绍了关于vue 2.0在ie 11中打开项目页面空白问题的解决方法,文中详细分析出现该问题的原因,并给出了详细的解决方法,需要的朋友可以参考借鉴,下面一起学习学习吧。 前言 因为工作的需要,学习Vue2.0也有一段时间,…

    编程技术 2025年3月8日
    200
  • 关于Vue 动态设置路由参数的介绍

    这篇文章主要介绍了vue 动态设置路由参数的案例分析,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在vue中 可以动态设置路由参数: 1.使用this.$router.go(),与js histroy.go() 用法一直,前进1,后退…

    编程技术 2025年3月8日
    200
  • Vue-cli proxyTable如何解决开发环境的跨域问题

    本篇文章主要介绍了vue-cli proxytable 解决开发环境的跨域问题详解,非常具有实用价值,需要的朋友可以参考下 和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆办法,查了一堆资料,…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论