最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue單頁面應(yīng)用做預(yù)渲染的方法實(shí)例

 更新時(shí)間:2021年10月26日 09:06:21   作者:_Battle  
vue是一個(gè)單頁面的應(yīng)用,這導(dǎo)致一些爬蟲和百度無法搜索到,如果你想針對(duì)你應(yīng)用的其中某些頁面進(jìn)行SEO優(yōu)化,讓他們可以被爬蟲和百度搜索到,你可以進(jìn)行預(yù)渲染操作,下面這篇文章主要給大家介紹了關(guān)于Vue單頁面應(yīng)用做預(yù)渲染的相關(guān)資料,需要的朋友可以參考下

前言

使用vue-cli打包項(xiàng)目一般為spa項(xiàng)目,眾所周知單頁面應(yīng)用不利于SEO,有ssr(服務(wù)端渲染)和預(yù)渲染兩種解決方案,這里我們只討論預(yù)渲染

vue-cli2.0版本

安裝

npm install prerender-spa-plugin --save

webpack.prod.conf.js增加部分代碼

const path = require('path')
const PrerenderSPAPlugin = require('prerender-spa-plugin')    // 引入插件
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer

plugins:[
	// 配置PrerenderSPAPlugin
    new PrerenderSPAPlugin({
      // 生成文件的路徑,也可以與webpakc打包的一致。
      staticDir: path.join(__dirname, '../dist'),
      
      // 對(duì)應(yīng)自己的路由文件,比如index有參數(shù),就需要寫成 /index/param1。
      routes: ['/', '/report','/genius','/index/param1'],
      // 一定要寫,如果沒有配置這段,也不會(huì)進(jìn)行預(yù)編譯
      renderer: new Renderer({
          inject: {
            foo: 'bar'
          },
          headless: false,
          // 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對(duì)應(yīng)上。
          renderAfterDocumentEvent: 'render-event'
      })
    })
]

在main.js中添加

new Vue({
  el: '#pingce',
  router,
  store,
  components: { App },
  template: '<App/>',
  // 添加mounted,不然不會(huì)執(zhí)行預(yù)編譯
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
})

router.js中設(shè)置mode: "history"

運(yùn)行npm run build,看一下生成的 dist 的目錄里是不是有每個(gè)路由名稱對(duì)應(yīng)的文件夾。然后找個(gè) 目錄里 的 index.html 用IDE打開,看文件內(nèi)容里是否有該文件應(yīng)該有的內(nèi)容。

每一個(gè)你所配置得路由都會(huì)生成一個(gè)文件夾,然后每個(gè)文件夾下邊都會(huì)生成一個(gè)index.html

vue-cli3.0版本

3.0的cli看上去簡(jiǎn)潔多了,去掉了2.0 build和config等目錄,那我們?cè)趺慈バ薷膚ebpack的配置呢?

在根目錄下創(chuàng)建vue.config.js,進(jìn)行你的配置。

安裝

npm install prerender-spa-plugin --save

vue-config.js中增加

const PrerenderSPAPlugin = require('prerender-spa-plugin');  // 引入插件
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
const path = require('path');
module.exports = {
    configureWebpack: config => {
        if (process.env.NODE_ENV !== 'production') return;
        return {
            plugins: [
                new PrerenderSPAPlugin({
                    // 生成文件的路徑,也可以與webpakc打包的一致。
                    // 這個(gè)目錄只能有一級(jí),如果目錄層次大于一級(jí),在生成的時(shí)候不會(huì)有任何錯(cuò)誤提示,在預(yù)渲染的時(shí)候只會(huì)卡著不動(dòng)。
                    staticDir: path.join(__dirname,'dist'),
                    // 對(duì)應(yīng)自己的路由文件,比如about有參數(shù),就需要寫成 /about/param1。
                    routes: ['/', '/product','/about'],
                    // 必須配置不然不會(huì)進(jìn)行預(yù)編譯
                    renderer: new Renderer({
                        inject: {
                            foo: 'bar'
                        },
                        headless: false,
                        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),兩者的事件名稱要對(duì)應(yīng)上。
                        renderAfterDocumentEvent: 'render-event'
                    })
                }),
            ],
        };
    }
}

在main.js中添加

new Vue({
  router,
  store,
  render: h => h(App),
  // 與 vue-config.js的renderAfterDocumentEvent: 'render-event'名字一定要對(duì)應(yīng)上
  mounted () {
    document.dispatchEvent(new Event('render-event'))
  }
}).$mount('#app')

router.js 中設(shè)置mode: “history”

運(yùn)行npm run build,看一下生成的 dist 的目錄里是不是有每個(gè)路由名稱對(duì)應(yīng)的文件夾。

總結(jié)

1.路由的模式最好使用history模式,不使用也可以運(yùn)行生成文件,但是查看每個(gè)index.html文件內(nèi)容師一樣的。

2.在3.0中和2.0中的設(shè)置大致是一樣的但是極個(gè)別的地方一定有注意

在2.0中,設(shè)置  staticDir: path.join(__dirname,'../dist')

在3.0中,設(shè)置  staticDir: path.join(__dirname,'dist')

如果這兩個(gè)設(shè)置錯(cuò)了,運(yùn)行npm run build 都會(huì)報(bào)錯(cuò)。

如果你想設(shè)置每個(gè)頁面的 title 和 meta 信息推薦使用 [vue-meta-info]

到此這篇關(guān)于Vue單頁面應(yīng)用做預(yù)渲染的文章就介紹到這了,更多相關(guān)Vue單頁面應(yīng)用預(yù)渲染內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解mpvue scroll-view自動(dòng)回彈bug解決方案

    詳解mpvue scroll-view自動(dòng)回彈bug解決方案

    設(shè)置了scroll-top的scroll-view組件,在組件所在vue實(shí)例data發(fā)生改變時(shí)會(huì)自動(dòng)回彈到最上方,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-10-10
  • .vue文件編譯成瀏覽器可執(zhí)行文件的流程詳解

    .vue文件編譯成瀏覽器可執(zhí)行文件的流程詳解

    這篇文章主要給大家介紹了.vue?文件是如何編譯成瀏覽器可執(zhí)行的文件,文中通過代碼示例將編譯流程介紹的非常詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的價(jià)值,感興趣的同學(xué)可以參考閱讀下
    2023-09-09
  • 一次在vue中使用post進(jìn)行excel表下載的實(shí)戰(zhàn)記錄

    一次在vue中使用post進(jìn)行excel表下載的實(shí)戰(zhàn)記錄

    最近遇到了需求,覺著有必要給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于一次在vue中使用post進(jìn)行excel表下載的實(shí)戰(zhàn)記錄,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 關(guān)于el-col的使用,占據(jù)寬度的應(yīng)用解析

    關(guān)于el-col的使用,占據(jù)寬度的應(yīng)用解析

    這篇文章主要介紹了關(guān)于el-col的使用,占據(jù)寬度的應(yīng)用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue組件間傳值的實(shí)現(xiàn)解析

    Vue組件間傳值的實(shí)現(xiàn)解析

    組件是?vue.js?最強(qiáng)大的功能之一,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互引用,這篇文章主要介紹了Vue組件間傳值的實(shí)現(xiàn)
    2022-09-09
  • 詳解vue如何使用自定義指令

    詳解vue如何使用自定義指令

    在Vue的模板語法中,我們學(xué)了很多指令,當(dāng)然除了這些指令,Vue也允許我們自己定義自己的指令,所以本文就來和大家聊聊如何使用自定義指令吧
    2023-10-10
  • vue3中的伸縮菜單組件

    vue3中的伸縮菜單組件

    這篇文章主要介紹了vue3中的伸縮菜單組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue.js中proxyTable 轉(zhuǎn)發(fā)請(qǐng)求的實(shí)現(xiàn)方法

    vue.js中proxyTable 轉(zhuǎn)發(fā)請(qǐng)求的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇vue.js中proxyTable 轉(zhuǎn)發(fā)請(qǐng)求的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue-antd?form組件封裝全過程

    vue-antd?form組件封裝全過程

    這篇文章主要介紹了vue-antd?form組件封裝全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解vue.js 開發(fā)環(huán)境搭建最簡(jiǎn)單攻略

    詳解vue.js 開發(fā)環(huán)境搭建最簡(jiǎn)單攻略

    本篇文章主要介紹了vue.js 開發(fā)環(huán)境搭建最簡(jiǎn)單攻略,這里整理了詳細(xì)的步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論

大荔县| 南城县| 南开区| 洪湖市| 碌曲县| 阳山县| 阜宁县| 衡水市| 曲麻莱县| 雅安市| 南召县| 泰顺县| 闵行区| 吉木萨尔县| 辛集市| 海口市| 东港市| 定安县| 崇礼县| 乡宁县| 平武县| 唐山市| 莱芜市| 东乌珠穆沁旗| 乌兰浩特市| 如东县| 赫章县| 应用必备| 南漳县| 马山县| 繁峙县| 堆龙德庆县| 肥乡县| 雷州市| 杭州市| 革吉县| 德兴市| 西吉县| 洞头县| 雷山县| 多伦县|