vue cli4.0項(xiàng)目引入typescript的方法
現(xiàn)有的項(xiàng)目是采用vue cli4.0腳手架生成的,現(xiàn)在想要引入typescript。
1.執(zhí)行安裝命令
npm install --save-dev typescriptnpm 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 識(shí)別 *.vue 文件,文件內(nèi)容如下:
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識(shí)別此段代碼為 typescript
6.使用裝飾器插件
vue-class-component:強(qiáng)化 Vue 組件,使用 TypeScript裝飾器 增強(qiáng) Vue 組件,使得組件更加扁平化vue-property-decorator:在 vue-class-component 上增強(qiáng)更多的結(jié)合 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; // 監(jiān)聽路由變化時(shí)的狀態(tài)為前進(jìn)還是后退 // 去終節(jié)點(diǎn)左,從終節(jié)點(diǎn)過來右 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); } } // 彈出系統(tǒng)提示對(duì)話框 showAlert(msg:string) { plus.nativeUI.alert( msg, function() { // console.log('User pressed!'); }, '報(bào)警詳情', '確定' ); }}
到此這篇關(guān)于vue cli4.0項(xiàng)目引入typescript的文章就介紹到這了,更多相關(guān)vue cli4.0引入typescript內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Python+unittest+requests 接口自動(dòng)化測(cè)試框架搭建教程2. Java GZip 基于內(nèi)存實(shí)現(xiàn)壓縮和解壓的方法3. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))4. 存儲(chǔ)于xml中需要的HTML轉(zhuǎn)義代碼5. Springboot 全局日期格式化處理的實(shí)現(xiàn)6. 利用CSS制作3D動(dòng)畫7. 一款功能強(qiáng)大的markdown編輯器tui.editor使用示例詳解8. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程9. SpringBoot+TestNG單元測(cè)試的實(shí)現(xiàn)10. PHP利用COM對(duì)象訪問SQLServer、Access
