Maison interface Web js tutoriel Introduction à la configuration de l'utilisation de Typescript dans Vue2 Vue-cli

Introduction à la configuration de l'utilisation de Typescript dans Vue2 Vue-cli

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

Cet article présente principalement la configuration de l'utilisation de Typescript dans Vue2 Vue-cli. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Vue est l'un des. trois frontaux majeurs. L'un des frameworks a reçu jusqu'à présent 44 873 étoiles sur github, ce qui suffit à montrer qu'il est progressivement devenu courant. L'article suivant vous présente principalement les informations pertinentes sur la configuration de l'utilisation de Typescript dans Vue2 Vue-cli. Les amis dans le besoin peuvent s'y référer.

Avant-propos

Parce que l'équipe de l'entreprise est passionnée par le framework vue récemment, je voulais m'entraîner à la dactylographie sur le nouveau projet, alors j'ai commencé vue+ts La route des pièges... Cet article est destiné à faire gagner du temps aux amis qui ont la même idée que moi. Je ne dirai pas grand-chose ci-dessous. Jetons un coup d'œil à la configuration requise pour utiliser Typescript dans Vue2 Vue-. cli.

1. Configuration préliminaire

Installez d'abord les plug-ins officiels vue-class-component, vue-property-decorator et configurez le webpack .
La configuration du webpack est la suivante :

Modifier le fichier d'entrée

entry: {
 app: './src/main.ts'
}
Copier après la connexion

partie résoudre :

extensions: ['.js', '.vue', '.json', '.ts', '.tsx']
Copier après la connexion

Configurer le chargeur

{
 test: /\.tsx?$/,
 loader: 'ts-loader',
 exclude: /node_modules/,
 options: {
  appendTsSuffixTo: [/\.vue$/],
 }
 }
Copier après la connexion

Configurer 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
 }
}
Copier après la connexion

2. Combat réel !

Configurer la configuration n'est que la première étape, l'exécuter dans le projet est la clé.

Ajoutez lang='ts'

dans la balise de script du fichier vue car ts-loader ne sait pas ce que sont les fichiers vue, html et autres comme le webpack équipé d'un chargeur , vous obtiendrez une erreur indiquant que le module ne peut pas être analysé après l'avoir exécuté, vous devez donc également configurer le fichier de déclaration .d.ts

la configuration suivante de vue

declare module "*.vue" {
 import Vue from 'vue';
 export default Vue;
}
Copier après la connexion

Vous pouvez également configurer des fichiers .d.ts tels que html pour d'autres modules non-js (dites à ts-loader de comprendre le html comme une chaîne)

declare module "*.html" {
 let template: string;
 export default template;
}
Copier après la connexion

Après la configuration, ts peut comprendre ces modules

Présentez les modules que vous devez utiliser depuis vue-property-decorator

(généralement, seuls Component, Vue, Watch et Prop sont utilisés. Les trois autres n'ont pas été utilisés et n'ont pas été étudiés. Quelqu'un qui sait peut les expliquer)

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

Voici le code sidbar écrit précédemment à titre d'exemple :

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
 }
}
Copier après la connexion

Les métadonnées sont écrites dans la configuration @Component, comme le nom, en utilisant les composants et ainsi de suite, puis expliquez comment utiliser chaque méthode d'attribut d'instance utilisée dans vue auparavant :

data : c'est la plus couramment utilisée, comme le SidebarMenu ci-dessus (un total de 4 déclarés ici), Notez que la variable déclarée ici doit se voir attribuer une valeur. Sinon, elle sera nulle et ne pourra pas être indéfinie, sinon les données ne répondront pas. Par conséquent, les attributs de la classe HoverTopElem doivent également avoir des valeurs initiales, sinon ces attributs ne seront pas réactifs

calculés : Voici la fonction get Notez que tsconfig.jsonp n'est pas configuré avec "target": "es5. " signalera une erreur ici

prop : Il existe un module Prop dans vue-property-decorator. Vous pouvez également déclarer cet accessoire dans les métadonnées, puis déclarer cette variable dans la classe. Je recommande personnellement le premier one

watch : Module Watch dans vue-property-decorator

methods : Les méthodes peuvent être écrites directement dans la classe comme les data (attention à ne pas avoir le même nom que le crochet du cycle)

Divers cycles de vie Hook : écrivez-le simplement directement

Pour le hook de routage, voir le document vue-class-component

À ce stade, vous peut essentiellement écrire le composant vue comme avant.

Bien sûr, si vous souhaitez écrire ts comme avant, vous devez également configurer tslint, sinon certaines syntaxes ts ne seront pas reconnues, comme les modificateurs publics. Parce que je ne maîtrise pas très bien ts, je. Je n'ai pas pensé à le configurer. Les amis intéressés peuvent l'essayer.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment résoudre le problème du chemin d'accès incorrect après l'empaquetage de l'image d'arrière-plan Vue

Basé sur casperjs et ressembler à .js implémente un service de comparaison de pixels

Introduction à la première utilisation de la méthode d'installation du stylet après l'initialisation du projet vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Comment utiliser la fonction interception vue Comment utiliser la fonction interception vue Apr 08, 2025 am 06:51 AM

L'interception de la fonction dans Vue est une technique utilisée pour limiter le nombre de fois qu'une fonction est appelée dans une période de temps spécifiée et prévenir les problèmes de performance. La méthode d'implémentation est: Importer la bibliothèque Lodash: import {Debounce} de 'Lodash'; Utilisez la fonction Debounce pour créer une fonction d'interception: const debouncedFunction = Debounce (() = & gt; {/ logical /}, 500); Appelez la fonction d'interception et la fonction de contrôle est appelée au plus une fois en 500 millisecondes.

Que signifie le développement de plusieurs pages Vue? Que signifie le développement de plusieurs pages Vue? Apr 07, 2025 pm 11:57 PM

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

Comment utiliser ForEach Loop à Vue Comment utiliser ForEach Loop à Vue Apr 08, 2025 am 06:33 AM

La boucle Foreach dans Vue.js utilise la directive V-FOR, qui permet aux développeurs d'itérer à travers chaque élément dans un tableau ou un objet et effectuer des opérations spécifiques sur chaque élément. La syntaxe est la suivante: & lt; modèle & gt; & lt; ul & gt; & lt; li v-for = & quot; item in items & gt; & gt; {{item}} & lt; / li & gt; & lt; / ul & gt; & lt; / template & gt; & am

See all articles