Maintenant, je vais partager avec vous un projet créé par vue-cli et comment configurer plusieurs pages. Il a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde.
L'outil de ligne de commande vue-cli officiellement fourni par vue peut rapidement créer une application d'une seule page. L'entrée de page par défaut est index.html Donc, si nous avons besoin de plusieurs pages, comment la configurer n'est en fait pas compliquée
Supposons que la page à créer soit une règle. Ce qui suit prend la règle comme exemple. 🎜>
Créer une nouvelle page html
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <title></title> </head> <body> <span style="color:#000000;"><p id="rule"></p></span> <!-- built files will be auto injected --> </body> </html>
Créer les fichiers d'entrée Rule.vue et Rule. js, calqué sur App.vue et main.js
<template> <p id="rule"> <router-view></router-view> </p> </template> <script> export default { name: 'lottery', data() { return { } }, mounted: function() { this.$router.replace({ path:'/rule' }); }, } </script> <style lang="less"> body{ margin:0; padding:0; } </style>
rule.js
import Vue from 'vue' import Rule from './Rule.vue' import router from './router' import $ from 'jquery' //import vConsole from 'vconsole' import fastclick from 'fastclick' Vue.config.productionTip = false fastclick.attach(document.body) Vue.config.productionTip = false; /* eslint-disable no-new */ new Vue({ el: '#rule', router, template: '<Rule/>', components: { Rule }, })
Modifiez config/index.js
build pour ajouter l'adresse de la règle, c'est-à-dire l'adresse et le nom de la règle. html généré après la compilationbuild: { // Template for index.html index: path.resolve(__dirname, '../dist/index.php'), rule: path.resolve(__dirname, '../dist/rule.php'), …… }
Modify build/webpack.base.conf.js
Configure Entry<. 🎜>entry: { app: './src/main.js', rule: './src/rule.js' },
Modifier build/webpack.dev.conf.js
Ajouter des pluginsnew HtmlWebpackPlugin({ filename: 'rule.html', template: 'rule.html', inject: true, chunks:['rule'] }),
Modifier le build /webpack.prod.conf.js
Ajouter des plugins
new HtmlWebpackPlugin({ filename: config.build.rule, template: 'rule.html', inject: true, minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: 'dependency', chunks: ['manifest','vendor','rule'] }),
Lorsque l'adresse d'arrière-plan accède à votre page nouvellement créée, puisque l'itinéraire par défaut configuré maintenant est public, vous pouvez configurez vous-même plusieurs fichiers de routage et référencez-les séparément.
Vous pouvez parcourir dans Rule.vue pour accéder à l'itinéraire spécifié afin d'obtenir le contrôle de la page
mounted: function() { this.$router.replace({ path:'/rule' }); },
Ce qui précède est ce que j'ai compilé pour tout le monde Oui, j'espère que cela sera utile à tout le monde à l'avenir.
Articles connexes :
Méthodes pour obtenir des éléments dom basés sur vue1 et vue2opération de requête en cascade agrégée nodejs+mongodb ExempleJS implémente la méthode de génération d'un code QR à partir d'un lien et de sa conversion en imageCe 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!