Composant de fichier unique Vuejs (tutoriel détaillé)
Cet article présente principalement l'explication détaillée des exemples de composants à fichier unique Vuejs. Les amis qui en ont besoin peuvent s'y référer
Dans les exemples précédents, nous avons défini les composants via Vue.component ou les attributs des composants. La méthode convient à de nombreux projets de petite et moyenne taille, mais dans les projets complexes, les défauts suivants sont très évidents :
Modèle de chaîne : manque de surbrillance, difficile à écrire, notamment en HTML multiligne Bien que le modèle puisse être écrit dans un fichier HTML, il est trop intrusif et ne favorise pas le découplage et la séparation des composants.
Pas de support CSS : signifie que lorsque HTML et JavaScript sont composants, CSS est évidemment laissé de côté.
Aucune étape de construction : limitée à l'utilisation de HTML et JavaScript ES5, pas de préprocesseurs.
Le composant mono-fichier avec l'extension .vue fourni par Vuejs fournit des solutions à tous les problèmes ci-dessus.
Première introduction aux composants à fichier unique
Ou utilisez le code source dans Outils pour le créer dans le répertoire src fichier hello.vue, le le contenu est le suivant :
<template> <h2>{{ msg }}</h2> </template> <script> export default { data () { return { msg:'Hello Vue.js 单文件组件~' } } } </script> <style> h2 { color: green; } </style>
Ensuite, introduisez-le dans app.js :
// ES6 引入模块语法 import Vue from 'vue'; import hello from './hello.vue'; new Vue({ el: "#app", template: '<hello/>', components: { hello } });
Le projet ne peut pas être exécuté pour le moment, car le webpack du fichier .vue est Il n'y a pas d'une autre manière. Il a besoin du chargeur de vue correspondant pour le traiter, et les amis prudents découvriront que la syntaxe ES6 est utilisée dans hello.vue. À ce stade, vous devez utiliser le chargeur de conversion de syntaxe correspondant pour convertir ES6 en serveur de navigation grand public. -syntaxe ES5 compatible, vous devez ici utiliser l'outil babel officiellement recommandé. Installez d'abord le chargeur requis :
# hello.vue 文件中使用了 css,所以需要 css-loader 来处理,vue-loader 会自动调用 npm install vue-loader css-loader babel-loader babel-core babel-preset-env --save-dev
Certaines personnes se demandent pourquoi elles doivent installer autant d'outils après avoir simplement utilisé babel-loader
C'est parce que de nombreux outils sont indépendants et que le chargeur n'est utilisé qu'avec webpack. bridge, et ici babel-core
et babel-preset-env
sont au cœur de la réalisation de ES6 vers ES5.
Nous modifions ensuite la configuration webpack.config.js comme suit :
module.exports = { // ... module: { // 这里用来配置处理不同后缀文件所使用的loader rules: [ { test: /.vue$/, loader: 'vue-loader' }, { test: /.js$/, loader: 'babel-loader' } ] } }
Pour la configuration de Babel, nous devons également créer un fichier .babelrc dans le répertoire racine du projet pour configurer les préréglages Babel et autres Le contenu des plug-ins concernés est le suivant :
{ "presets": [ "env" ] }
Mais même si tout est configuré, le projet signalera toujours une erreur comme suit :
ERROR in ./src/hello.vue Module build failed: Error: Cannot find module 'vue-template-compiler'
Quelqu'un est mécontent, évidemment. J'ai installé les dépendances conformément aux instructions officielles et je les ai configurées correctement. Pourquoi ai-je toujours une erreur ? N'ayez pas peur lorsque vous rencontrez une erreur. Lisez d'abord quelle est l'erreur. Il est facile de découvrir que c'est parce que vous ne trouvez pas le module 'vue-template-compiler'. C'est parce que vue-loader
doit également s'appuyer sur. l'outil vue-template-compiler
lors du traitement des fichiers .vue à gérer.
Au début, je ne savais pas pourquoi le responsable n'avait pas dit directement aux utilisateurs qu'ils devaient installer cette dépendance. Après avoir lu vue-loader, j'ai réalisé que son fichier package.json utilise vue-template-compiler
et <. 🎜> comme peerDependencies et peerDependencies sont présents lors de l'installation, il ne sera pas installé automatiquement (npm@3.0+), mais donnera uniquement des avertissements pertinents, nous devons donc l'installer manuellement, bien sûr, si nous devons écrire du CSS. le fichier .vue, il faut aussi utiliser css-loader C'est aussi dans peerDependencies. Discussion connexe : https://github.com/vuejs/vue-loader/issues/1158css-loader
npm install vue-template-compiler css-loader --save-devExécutez le projet encore une fois, Notre contenu apparaît sur la page et aucune erreur n'est signalée, ok, vous avez terminé ~
Utilisez le préprocesseur
Nous avons appris à utiliser .vue Maintenant que j'ai écrit du CSS, que se passe-t-il si j'utilise le préprocesseur sass ? Installez d'abord les modules mentionnés dans l'article précédent :npm install sass-loader node-sass --save-devLa configuration ne prend que deux étapes : Modifiez la configuration de vue-loader dans webpack.config.js
module.exports = { // ... module: { // 这里用来配置处理不同后缀文件所使用的loader rules: [ { test: /.vue$/, loader: 'vue-loader', options: { loaders: { // 这里也可以使用连写方式,但是不利于自定义话参数配置 // scss: 'vue-style-loader!css-loader!sass-loader' scss: [ { loader: 'vue-style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' } ] } } }, // ... ] } }Ajoutez l'attribut
à la balise de style dans le fichier .vue. lang="scss"
, ce qui est très peu convivial. Le plug-in @import './styles/_var.scss'
peut très bien nous aider à résoudre ce problème. Installez-le d'abord : sass-resources-loader
npm install sass-resources-loader --save-devpuis modifiez la configuration liée à vue-loader dans le fichier webpack.config.js :
// ... { test: /.vue$/, loader: 'vue-loader', options: { loaders: { scss: [ { loader: 'vue-style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' }, // 看这里,看这里,看这里 { loader: 'sass-resources-loader', options: { // 这里的resources 属性是个数组,可以放多个想全局引用的文件 resources: [resolve('./src/styles/_var.scss')] } } ] } } } // ...La configuration est terminée, testons-la à nouveau. Créez respectivement les fichiers hello1.vue et hello2.vue dans le répertoire src :
<!-- hello1.vue --> <template> <h1>{{ msg }}</h1> </template> <script> export default { name:'hello1', data () { return { msg:'Hello Vue.js 单文件组件~' } } } </script> <stylelang="scss"> h1 { color: $green; } </style> <!-- hello2.vue --> <template> <h1>{{ msg }}</h1> </template> <script> export default { name:'hello2', data () { return { msg:'Hello Vue.js 单文件组件~' } } } </script> <stylelang="scss"> h1 { color: $red; } </style>Créez ensuite un répertoire styles et créez un nouveau fichier _var.scss pour y stocker les variables globales :
$green: rgb(41, 209, 41); $red: rgb(177, 28, 28);Ensuite, référencez les deux composants dans app.js :
import Vue from 'vue'; import hello1 from './hello1.vue'; import hello2 from './hello2.vue'; new Vue({ el: "#app", template: '<p><hello1/><hello2/></p>', components: { hello1, hello2 } });Réexécutez le projet.
Style de portée
Le composant fichier unique nous offre une fonction très pratique, qui consiste à ajouter l'attribut scoped à la balise de style , les styles dans la balise ne s'appliqueront qu'aux éléments du composant actuel.接着上面的例子,运行后会发现 hello1.vue 中的 h1 颜色并不是想要的 $green 色,而是被 hello2.vue 中的样式覆盖了。于是分别在 hello1.vue 和 hello2.vue 的 style 标签上添加 scoped 属性,如下:
<!-- hello1.vue --> <stylelang="scss"scoped> h1 { color: $green; } </style> <!-- hello2.vue --> <stylelang="scss"scoped> h1 { color: $red; } </style>
这样一来我们的两个 h1 标签颜色都显示正常了。
自定义块
在编写某些开源组件时,有时候我们需要同时维护多个组件和组件说明,但是每次修改就要同时修改 .vue 和 .md 文件,相当麻烦。 .vue 文件的 自定义语言块 功能,就允许我们将 markdown 说明同时写进 .vue 文件中,然后通过插件将其说明部分单独提取到相应的 .md 文件中,这样就可以同时维护说明文档和组件功能了。
比如我们将 hello1.vue 文件修改如下:
<docs> # 标题 这是标题内容,[仓库地址](https://github.com/yugasun/You-Dont-Know-Vuejs) ## 子标题 这是子标题内容 </docs> <template> <h1>{{ msg }}</h1> </template> <script> export default { name:'hello1', data () { return { msg:'Hello Vue.js 单文件组件~' } } } </script> <stylelang="scss"scoped> h1 { color: $green; } </style>
然后修改 webpack.config.js 配置:
const path = require('path'); // 引入相关插件 const ExtractTextPlugin = require('extract-text-webpack-plugin'); function resolve(dir){ return path.resolve(__dirname, dir); } module.exports = { // 入口文件 entry: './src/app.js', // 编译输出文件 output: { path: resolve('./'), filename: 'build.js' }, resolve: { alias: { // 因为我们这里用的是 require 引入方式,所以应该使用vue.common.js/vue.js/vue.min.js 'vue$': 'vue/dist/vue.common.js' } }, devServer: { // 这里定义 webpack-dev-server 开启的web服务的根目录 contentBase: resolve('./') }, module: { // 这里用来配置处理不同后缀文件所使用的loader rules: [ { test: /.vue$/, loader: 'vue-loader', options: { loaders: { scss: [ { loader: 'vue-style-loader' }, { loader: 'css-loader' }, { loader: 'sass-loader' }, { loader: 'sass-resources-loader', options: { resources: [resolve('./src/styles/_var.scss')] } } ], docs: ExtractTextPlugin.extract('raw-loader') } } }, { test: /.js$/, loader: 'babel-loader' } ] }, plugins: [ new ExtractTextPlugin('docs.md') ] }
这里用到了 extract-text-webpack-plugin
导出 text 插件,和 raw-loader
,分别都安装下就行。
然后运行构建命令 npm run build
,等运行结束,根目录下会同时生成一个 docs.md 文件,这就是我们想编写的说明文档。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

De nombreux utilisateurs rencontrent toujours des problèmes lorsqu'ils jouent à certains jeux sur Win10, tels que le gel de l'écran et les écrans flous. À l'heure actuelle, nous pouvons résoudre le problème en activant la fonction de lecture directe, et la méthode de fonctionnement de la fonction est également très simple. Comment installer Directplay, l'ancien composant de Win10 1. Entrez "Panneau de configuration" dans la zone de recherche et ouvrez-le 2. Sélectionnez de grandes icônes comme méthode d'affichage 3. Recherchez "Programmes et fonctionnalités" 4. Cliquez sur la gauche pour activer ou désactiver les fonctions Win 5. Sélectionnez l'ancienne version ici Cochez simplement la case

Vue est un framework front-end très populaire. Il fournit de nombreux outils et fonctions, tels que la création de composants, la liaison de données, la gestion d'événements, etc., qui peuvent aider les développeurs à créer des applications Web efficaces, flexibles et faciles à entretenir. Dans cet article, je vais vous présenter comment implémenter un composant de calendrier à l'aide de Vue. 1. Analyse des exigences Tout d'abord, nous devons analyser les exigences de ce composant de calendrier. Un calendrier de base doit avoir les fonctions suivantes : afficher la page du calendrier du mois en cours ; prendre en charge le passage au mois précédent ou au mois suivant en cliquant sur un certain jour ;

Les composants de l'ancienne version de Win10 doivent être activés par les utilisateurs eux-mêmes dans les paramètres, car de nombreux composants sont généralement fermés par défaut. Nous devons d'abord entrer les paramètres. L'opération est très simple. Suivez simplement les étapes ci-dessous. composants de version ? Ouvrir 1. Cliquez sur Démarrer, puis cliquez sur « Système Win » 2. Cliquez pour accéder au Panneau de configuration 3. Cliquez ensuite sur le programme ci-dessous 4. Cliquez sur « Activer ou désactiver les fonctions Win » 5. Ici, vous pouvez choisir ce que vous voulez. ouvrir

Vue.js convient aux projets de petite et moyenne taille et aux itérations rapides, tandis que React convient aux applications grandes et complexes. 1) Vue.js est facile à utiliser et convient aux situations où l'équipe est insuffisante ou l'échelle du projet est petite. 2) React a un écosystème plus riche et convient aux projets avec des performances élevées et des besoins fonctionnels complexes.

Le comportement d'affichage par défaut des composants du framework Angular ne concerne pas les éléments au niveau du bloc. Ce choix de conception favorise l'encapsulation des styles de composants et encourage les développeurs à définir consciemment la manière dont chaque composant est affiché. En définissant explicitement l'affichage des propriétés CSS, l'affichage des composants angulaires peut être entièrement contrôlé pour obtenir la mise en page et la réactivité souhaitées.

Pratique des composants Vue : Introduction au développement de composants de pagination Dans les applications Web, la fonction de pagination est un composant essentiel. Un bon composant de pagination doit être simple et clair dans sa présentation, riche en fonctions et facile à intégrer et à utiliser. Dans cet article, nous présenterons comment utiliser le framework Vue.js pour développer un composant de pagination hautement personnalisable. Nous expliquerons en détail comment développer à l'aide des composants Vue à travers des exemples de code. Pile technologique Vue.js2.xJavaScript (ES6) Environnement de développement HTML5 et CSS3

Développement de composants Vue : méthode d'implémentation du composant de barre de progression Préface : dans le développement Web, la barre de progression est un composant d'interface utilisateur courant, qui est souvent utilisé pour afficher la progression des opérations dans des scénarios tels que les demandes de données, les téléchargements de fichiers et les soumissions de formulaires. Dans Vue.js, nous pouvons facilement implémenter un composant de barre de progression en personnalisant les composants. Cet article présentera une méthode d'implémentation et fournira des exemples de code spécifiques. J'espère que cela sera utile aux débutants de Vue.js. Structure et style du composant Tout d'abord, nous devons définir la structure de base et le style du composant de barre de progression.

Vue.js n'est pas difficile à apprendre, en particulier pour les développeurs avec une fondation JavaScript. 1) Sa conception progressive et son système réactif simplifient le processus de développement. 2) Le développement basé sur les composants rend la gestion du code plus efficace. 3) Les exemples d'utilisation montrent une utilisation de base et avancée. 4) Les erreurs courantes peuvent être déboguées via Vuedevtools. 5) L'optimisation des performances et les meilleures pratiques, telles que l'utilisation des attributs V-IF / V et clés, peuvent améliorer l'efficacité de l'application.
