ホームページ ウェブフロントエンド jsチュートリアル Vue2 Vue-cli で Typescript を使用する設定の紹介

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

Jun 29, 2018 pm 03:52 PM
cli typescript vue vue2

この記事では主に 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes< router-link to ="/" Component Window.history.back()、およびメソッド選択はシーンに依存します。

Function Intercept Vueの使用方法 Function Intercept Vueの使用方法 Apr 08, 2025 am 06:51 AM

VUEの関数傍受は、指定された期間内に関数が呼び出され、パフォーマンスの問題を防ぐ回数を制限するために使用される手法です。実装方法は次のとおりです。LodashLibrary:Import {Debounce}から「Lodash」からインポート。 debounce関数を使用して、インターセプト関数を作成します。インターセプト関数を呼び出すと、制御関数は500ミリ秒でせいぜい1回呼び出されます。

Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

Vueでリーチループを使用する方法 Vueでリーチループを使用する方法 Apr 08, 2025 am 06:33 AM

vue.jsのforeachループは、v-forディレクティブを使用します。これにより、開発者は各要素を配列またはオブジェクトの各要素を繰り返し、各要素で特定の操作を実行できます。構文は次のとおりです。< Template> < ul> < li v-for ="アイテムの項目>> {{item}}</li> </ul> </template>&am

See all articles