美文网首页vue
vue2.0预渲染

vue2.0预渲染

作者: 匆匆那年_海 | 来源:发表于2019-08-15 17:30 被阅读3次

    服务端渲染VS预渲染

    1.服务端渲染:将完整的 html 输出到客户端,又被认为是‘同构’或‘通用’
           点:首次渲染快(无需等待所有js都完成下载)利于SEO,节能
           缺点:开发受限
             需要处于Node.js server运行环境;
             更多的服务器负载(占用更大的CPU资源)
    2.预渲染:对特定路由生成静态HTML文件,前端作为一个完全静态的站点
         无需使用web服务器实时动态编译HTML
         改善少数页面的SEO,可采用预渲染
         若网站有成百上千条路线,预编译会非常缓慢(此情况慎用)

    预渲染

    1.核心插件

    npm install prerender-spa-plugin --save-dev
    

    2.在build/webpack.prod.conf.js中进行配置

    const PrerenderSPAPlugin = require('prerender-spa-plugin')
    const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
    plugins: [
       new PrerenderSPAPlugin({
            //生成文件的路径,这个目录只能有一级。
        staticDir: path.join(__dirname, '../dist'),
        //必需,要渲染的路由文件。
        routes: ['/', '/index'],
        //必须,要使用的实际渲染器,没有则不能预编译
        renderer: new Renderer({
            inject: {
                foo: 'bar'
            },
            //等待渲染,直到检测到指定元素。
            //例如,在项目入口使用`document.dispatchEvent(new Event('custom-render-trigger'))` 
            renderAfterDocumentEvent: 'render-event',
            headless: false //渲染时显示浏览器窗口。对调试很有用。  
        })
       })
    ]
    

    3.main.js中进行配置

    new Vue({
        el: '#app',
        router,
        store,
        components: {
            App
        },
        template: '<App/>',
        mounted() {
            document.dispatchEvent(new Event('render-event'));
        }
    })
    

    4.打包cnpm run build

    相关文章

      网友评论

        本文标题:vue2.0预渲染

        本文链接:https://www.haomeiwen.com/subject/gvftsctx.html