Vue.js 开发多页面应用(MPA)是指使用 Vue.js 框架来构建多个独立的页面,每个页面都有自己的 HTML、CSS 和 JavaScript 文件。与单页面应用(SPA)不同,多页面应用在用户导航时会重新加载整个页面。
index.html
。假设我们有一个简单的多页面应用,包含两个页面:首页和关于页。
/project
/src
/pages
/home
Home.vue
index.js
/about
About.vue
index.js
/components
Header.vue
Footer.vue
webpack.config.js
// webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
home: './src/pages/home/index.js',
about: './src/pages/about/index.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].bundle.js'
},
plugins: [
new HtmlWebpackPlugin({
template: './src/pages/home/index.html',
filename: 'home.html',
chunks: ['home']
}),
new HtmlWebpackPlugin({
template: './src/pages/about/index.html',
filename: 'about.html',
chunks: ['about']
})
],
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
loader: 'babel-loader'
}
]
}
};
// src/pages/home/index.js
import Vue from 'vue';
import Home from './Home.vue';
new Vue({
render: h => h(Home)
}).$mount('#app');
// src/pages/about/index.js
import Vue from 'vue';
import About from './About.vue';
new Vue({
render: h => h(About)
}).$mount('#app');
<!-- src/pages/home/Home.vue -->
<template>
<div>
<Header />
<h1>Home Page</h1>
<Footer />
</div>
</template>
<script>
import Header from '../components/Header.vue';
import Footer from '../components/Footer.vue';
export default {
components: {
Header,
Footer
}
};
</script>
<!-- src/pages/about/About.vue -->
<template>
<div>
<Header />
<h1>About Page</h1>
<Footer />
</div>
</template>
<script>
import Header from '../components/Header.vue';
import Footer from '../components/Footer.vue';
export default {
components: {
Header,
Footer
}
};
</script>
SplitChunksPlugin
来提取公共代码。window.localStorage
。通过以上步骤和示例代码,你可以顺利地使用 Vue.js 开发多页面应用,并解决常见的开发问题。
领取专属 10元无门槛券
手把手带您无忧上云