前言

因为最近公司的团队热衷于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还不是很熟练就没想着配,有兴趣的朋友可以试试。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# vue
# cli
# typescript
# vue2
# vue项目中使用ts(typescript)入门教程
# 详解TypeScript+Vue 插件 vue-class-component的使用总结
# Vue 中使用 typescript的方法详解
# Vue3项目中配置TypeScript和JavaScript的兼容
# 就可以
# 还需要
# 会报
# 写在
# 大佬
# 在这里
# 就能
# 才是
# 也没
# 说了
# 和我
# 要有
# 不多
# 不是很
# 之路
# 就行
# 就没
# 要想
# 不像
# 有兴趣
相关文章:
如何生成腾讯云建站专用兑换码?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
自助网站制作软件,个人如何自助建网站?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
如何通过宝塔面板实现本地网站访问?
如何用PHP快速搭建高效网站?分步指南
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何在阿里云完成域名注册与建站?
如何通过智能用户系统一键生成高效建站方案?
网站app免费制作软件,能免费看各大网站视频的手机app?
音响网站制作视频教程,隆霸音响官方网站?
如何快速搭建自助建站会员专属系统?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
网页设计网站制作软件,microsoft office哪个可以创建网页?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何构建满足综合性能需求的优质建站方案?
历史网站制作软件,华为如何找回被删除的网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何基于云服务器快速搭建个人网站?
表情包在线制作网站免费,表情包怎么弄?
如何在服务器上三步完成建站并提升流量?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何用y主机助手快速搭建网站?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
成都网站制作报价公司,成都工业用气开户费用?
建站之星免费模板:自助建站系统与智能响应式一键生成
定制建站模板如何实现SEO优化与智能系统配置?18字教程
h5在线制作网站电脑版下载,h5网页制作软件?
,怎么在广州志愿者网站注册?
设计网站制作公司有哪些,制作网页教程?
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
如何在阿里云虚拟主机上快速搭建个人网站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
,网页ppt怎么弄成自己的ppt?
常州企业建站如何选择最佳模板?
建站之星各版本价格是多少?
如何在云虚拟主机上快速搭建个人网站?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
临沂网站制作企业,临沂第三中学官方网站?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速生成专业多端适配建站电话?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
如何用VPS主机快速搭建个人网站?
定制建站哪家更专业可靠?推荐榜单揭晓
网站专业制作公司有哪些,做一个公司网站要多少钱?
网站制作网站,深圳做网站哪家比较好?
简单实现Android文件上传
重庆网站制作公司哪家好,重庆中考招生办官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。