国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue與TypeScript集成配置最簡教程(推薦)

2019-11-19 15:09:32
字體:
來源:轉載
供稿:網友

前言

Vue的官方文檔沒有給出與TypeScript集成的具體步驟,網上其他的教程不是存在問題就是與vue-cli建立的項目存在差異,讓人無從下手。

下面我就給出vue-cli建立的項目與TypeScript集成的最簡配置。

初始化項目

首先用vue-cli建立webpack項目。這里為了演示方便,沒有打開router和eslint等,可以根據自身情況打開。

# vue init webpack vue-typescript? Project name vue-typescript? Project description A Vue.js project? Author? Vue build standalone? Install vue-router? No? Use ESLint to lint your code? No? Setup unit tests with Karma + Mocha? No? Setup e2e tests with Nightwatch? No

安裝TypeScript相關依賴和項目其余依賴,用npm或cnpm

# cd /vue-typescript# npm install typescript ts-loader --save-dev# npm install

配置

修改目錄下bulid/webpack.base.conf.js文件,在文件內module>rules添加以下規則

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

在src目錄下新建一個文件vue-shims.d.ts,用于識別單文件vue內的ts代碼

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

在項目根目錄下建立TypeScript配置文件tsconfig.json

{ "compilerOptions": {  "strict": true,  "module": "es2015",  "moduleResolution": "node",  "target": "es5",  "allowSyntheticDefaultImports": true,  "lib": [   "es2017",   "dom"  ] }}

重命名src下的main.jsmain.ts

修改webpack.base.conf.js下的entry>app為'./src/main.ts'

修改src下的App.vue文件,在

<script lang="ts">

測試

下面可以測試是否集成成功,編輯src/components/Hello.vue文件,修改

<script lang="ts"> import Vue, {ComponentOptions} from 'vue' export default {  name: 'hello',  data() {   return {    msg: 'this is a typescript project now'   }  } } as ComponentOptions<Vue></script>

運行項目

# npm run dev

測試成功,現在是一個TypeScipt項目了

 

進階

配置官方推薦的vue-class-component,https://cn.vuejs.org/v2/guide/typescript.html

安裝開發依賴

# npm install --save-dev vue-class-component

修改ts配置文件,增加以下兩項配置

"allowSyntheticDefaultImports": true,"experimentalDecorators": true,

改寫我們的Hello組件

<script lang="ts"> import Vue from 'vue' import Component from 'vue-class-component' @Component export default class Hello extends Vue {  msg: string = 'this is a typescript project now'   }</script>

使用vue-class-component后,初始數據可以直接聲明為實例的屬性,而不需放入data() {return{}}中,組件方法也可以直接聲明為實例的方法,如官方實例,更多使用方法可以參考其官方文檔

https://github.com/vuejs/vue-class-component#vue-class-component

import Vue from 'vue'import Component from 'vue-class-component'// @Component 修飾符注明了此類為一個 Vue 組件@Component({ // 所有的組件選項都可以放在這里 template: '<button @click="onClick">Click!</button>'})export default class MyComponent extends Vue { // 初始數據可以直接聲明為實例的屬性 message: string = 'Hello!' // 組件方法也可以直接聲明為實例的方法 onClick (): void {  window.alert(this.message) }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 牡丹江市| 淄博市| 交城县| 海门市| 永丰县| 张家界市| 阿鲁科尔沁旗| 赤壁市| 沙田区| 孟州市| 水富县| 万宁市| 灵宝市| 缙云县| 容城县| 富顺县| 平定县| 江油市| 大兴区| 临武县| 马公市| 民权县| 进贤县| 淄博市| 蒲城县| 瑞安市| 固始县| 滨海县| 余干县| 金乡县| 平山县| 内江市| 安平县| 双桥区| 乐昌市| 肃宁县| 卢湾区| 高淳县| 阿坝| 社会| 怀远县|