Vue2 Vue-cli で Typescript を使用する設定の紹介

不言
リリース: 2018-06-29 15:52:43
オリジナル
2146 人が閲覧しました

この記事では主に Vue2 Vue-cli で Typescript を使用するための設定を紹介します。必要な方は参考にしてください。Vue は 3 つの主要なフロントエンド フレームワークの 1 つです。 github では 44,873 個のスターを獲得しており、これは静かに主流になったことを示すのに十分です。以下の記事では、Vue2 Vue-cli で Typescript を使用するための設定に関する関連情報を主に紹介します。必要な方は参考にしてください。

前書き会社のチームが最近 vue フレームワークに熱心で、私は新しいプロジェクトで typescript を練習したいと思ったので、vue+ts の旅を始めました... この記事は次のような人を対象としています。私と同じ考えです。落とし穴に陥る時間を節約してください。これ以上は言いません。Vue2 Vue-cli で Typescript を使用するために必要な設定を見てみましょう。

1. 初期設定 まず、公式プラグイン vue-class-component、vue-property-decorator をインストールし、webpack を設定します。

Webpackの構成は次のとおりです:



エントリファイルを変更します

entry: {
 app: './src/main.ts'
}
ログイン後にコピー

解決部分:

extensions: ['.js', '.vue', '.json', '.ts', '.tsx']
ログイン後にコピー

ローダーを構成します

{
 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
 }
}
ログイン後にコピー

2. 実戦!
構成のセットアップは最初のステップにすぎず、プロジェクトでの実行が重要です。


vueファイルのscriptタグにlang='ts'を追加します

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'ts-loaderはローダー搭載のwebpackのようにvueやhtmlなどがどのようなファイルなのか分からないため、 run 起動後、モジュールを解析できないエラーが報告されるので、.d.ts宣言ファイルの設定も必要です

vueの以下の設定

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
 }
}
ログイン後にコピー

.dの設定も可能です。 HTML などの他の非 JS モジュール用の ts ファイル (ts-loader に html を文字列として理解するように指示します)

rrreee

設定後、ts はこれらのモジュールを理解できるようになります

vue-property- から必要なモジュールを導入しますデコレーター


(一般的には、Component、Vue、Watch、Prop のみが使用されます。他の 3 つは使用されておらず、研究されていません。知っている人が説明できます。)


import { Component, Vue, Watch } from 'vue. -property-decorator'

以前に書いた sidbar コードの例です:

rrreee

メタデータは、名前、コンポーネントなどの @Component 設定に書き込まれます。次に、以前に vue で使用されていた各インスタンス属性メソッドの使用方法について説明します。

data: これは、上記の SidebarMenu と同様に、最も一般的に使用されます (ここでは合計 4 つの変数が宣言されていることに注意してください)。ここに値を割り当てる必要があります。そうでない場合は null になり、未定義にすることはできません。そうしないと、データが応答しなくなります。したがって、HoverTopElem クラスのプロパティにも初期値が必要です。そうでない場合、これらのプロパティは応答しません。これは get 関数です。tsconfig.jsonp は "target": "es5" を構成していないため、エラーが発生します。ここで報告されています。Prop: vue- property-decorator に Prop モジュールがあります。このプロパティをメタデータで宣言してから、この変数をクラスで宣言することもできます。watch: vue- モジュールを宣言します。 property-decoratormethods : データと同様にクラス内に直接メソッドを記述可能(サイクルフックと同じ名前にしないように注意)

各種ライフサイクルフック: 直接記述するだけ
vueを参照ルーティングフック用の-class-componentドキュメント

この時点では、基本的には前と同じようにvueコンポーネントを書くことができます。 もちろん、以前のように ts を書きたい場合は、tslint も設定する必要があります。そうしないと、public 修飾子などの一部の ts 構文が認識されません。ts はあまり熟練していないため、それを設定することは考えていません。興味のある友達は試してみることができます。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

Vue 背景画像のパッケージ化後のアクセス パスが正しくない問題を解決する方法

🎜🎜🎜🎜 casperjs とimilare.js に基づいてピクセル比較サービスを実装する 🎜🎜🎜🎜🎜その後初めて初期化されるvueプロジェクトが作成されました スタイラスを使ったインストール方法の紹介🎜🎜🎜🎜🎜🎜🎜🎜🎜

以上がVue2 Vue-cli で Typescript を使用する設定の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート