需求:
vue的单页面工程在打包的时候,除了生成一份单页面工程外,还需要额外生成一份和vue路由对应的多个.html文件,
这批html的代码和pages里面的.vue文件几乎是一致的,单个.html页面可以浏览无报错。
例如:
path为/index
的页面,对应的是index.vue
,最后打包的时候可以生成一个对应的index.html
文件,index.vue
代码如下:
<template>
<div id="app">
<div class="example">{{ msg }}</div>
</div>
</template>
<script>
export default {
data () {
return {
msg: 'Hello world!'
}
}
}
</script>
<style>
.example {
color: red;
}
</style>
生成的index.html
里面代码则是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style>
.example {
color: red;
}
</style>
</head>
<body>
<div id="app">
<div class="example">{{ msg }}</div>
</div>
<script>
new Vue({
el:'#app',
data:{
msg: 'Hello world!'
}
});
</script>
</body>
</html>
当然,这是一个简单的例子,实际的项目中会涉及到第三方库、子组件、css预处理器等问题,请问有大佬遇过类似的需求吗?
可以用 nuxt.js, 这个是服务端渲染页面框架,基于vue,可以自动根据路由生成html页面
nuxt官方教程