最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 使用 vue-cli 3.x 开发多页面应用

    正文概述 掘金(嘿页面仔)   2020-12-11   577

    之前一直用vue来做的单页面应用,现在公司业务需要开发多页面,于是花时间去研究了vue如何配置多页面,特地记录一下。

    单、多页面应用的区别

    • 单页面应用(spa):整个应用在一张页面中完成。用户体验好,因所有的资源都在一张页面上加载,所以首屏渲染在不做优化的情况下可能会很慢,其次spa也不利于seo。
    • 多页面应用(mpa):整个应用由多个页面构成。切换页面需要用a标签的href属性来做到,跳转到的页面需要加载该页面需要的资源,因而再切换页面的时候就显得不丝滑。

    至于更多的详细区别,网上有很多答案了。

    简单配置

    用vue-cli生成一个简单项目,敲下vue create xxx 后我直接选的默认创建方式。

    项目生成后,删除 App.vue 和 main.js 这两个文件,然后在根目录下新建 vue.config.js 文件

    下面是我的demo:

    在 src 目录下新建一个 pages 页面,用来管理页面文件夹,然后再在 pages 目录下新建 xxx 目录,这个 xxx 目录就是用来存放你的页面的,类似于微信小程序的pages目录。

    比如我这里的两个目录(里面需要3个基本的文件,html, js, vue)

    使用 vue-cli 3.x 开发多页面应用

    配置 vue.config.js

    接下来要按照官网给的例子去配置入口页面,vue官网示例

    这个结构也很类似微信小程序的配置,根据我上面的目录结构,最后配置好的样子:

    module.exports = {
        devServer: {
          publicPath: '/',
          index: 'test.html'  // 启动后默认进入的页面
        },
        pages: {
            test: {
                entry: './src/pages/test/test.js', // 这个一定要有,必填
                template: './src/pages/test/test.html',
                filename: 'test.html',
                title: 'test page'
                // chunks: ['chunk-vendors', 'chunk-common', 'test'] 如果这里填写了,记得这个数组的最后一项是当前的文件名
            },
            test2: {
                entry: './src/pages/test2/test2.js',
                template: './src/pages/test2/test2.html',
                filename: 'test2.html',
                title: 'test2 page',
                chunks: ['chunk-vendors', 'chunk-common', 'test2']
            }
        }
    }
    

    接下来配置test目录下的3个页面,其他的目录都是一样的配置,我就不一一配了。

    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <title><%= htmlWebpackPlugin.options.title %></title>
    </head>
    <body>
        <div id="test"></div>
    </body>
    </html>
    

    test.js (注意$mount('#test')里面的id要和html里 <div id="test"></div> 的id一致)

    import Vue from 'vue'
    import Test from './test.vue'
    
    Vue.config.productionTip = false
    
    new Vue({
        render: h => h(Test)
    }).$mount('#test')
    

    test.vue

    <template>
        <div class="test2">
            {{msg}}
            <a href="test2.html">去test2 page</a>
        </div>
    </template>
    
    <script>
    export default {
        data(){
            return{
                msg: '这里是test page'
            }
        }
    }
    </script>
    

    其他页面都是一样的,其他的页面配置好之后,就可以愉快的敲下 npm run serve 了。

    效果:

    使用 vue-cli 3.x 开发多页面应用

    使用 vue-cli 3.x 开发多页面应用

    总结

    • 个人理解哈,之后的开发就在页面目录下的xxx.vue页面里面开发就行,这里的玩法就回到了熟悉的单页面方式,这里面的路由就可以上vue-router,只要在xxx.js文件中的vue实例里面配置好就行,当然上vuex的话一样的。其实多页面的玩法还是很简单的。

    • 多页面之间的跳转可以用a标签,或者windon.open方法来跳转,各个多页面之间的router, vuex不共享。

    • 在vue.config.js中的pages配置随着页面的增多,可能会很麻烦,后续可以使用 glob 来处理文件目录,使用方法官网也有,网上也一大堆。这里就不多介绍了。


    起源地下载网 » 使用 vue-cli 3.x 开发多页面应用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元