国产亚洲欧美一区二区,亚洲欧洲国产一区,成人在线视频网,中文精品视频一区二区在线观看

返回頂部
關(guān)閉軟件導(dǎo)航
位置:首頁(yè) > 技術(shù)分享 > SEO優(yōu)化>基于VueSEO的四種方案

前言:眾所周知,VueSPA單頁(yè)面應(yīng)用對(duì)SEO不友好,當(dāng)然也有相應(yīng)的解決方案,下面列出幾種很近研究和使用過的SEO方案,SSR和靜態(tài)化基于Nuxt.js來說。

關(guān)于服務(wù)器渲染:,對(duì)Vue版本有要求,對(duì)服務(wù)器也有一定要求,需要支持nodejs環(huán)境。

使用SSR權(quán)衡之處:

優(yōu)勢(shì):

不足:(開發(fā)中碰到的坑)

1.一套代碼兩套執(zhí)行環(huán)境,會(huì)引起各種問題,比如服務(wù)端沒有window、document對(duì)象,處理方式是增加判定,假如是客戶端才執(zhí)行:

if(process.browser){console.log(window);}

引用npm包,帶有dom操作的,例如:wowjs,不能用import的方式,改用:

if(process.browser){

var{WOW}=require('wowjs');

require('wowjs/css/libs/animate.css');}

2.NuxtasyncData方法,初始化頁(yè)面前先得到數(shù)據(jù),但僅限于頁(yè)面組件調(diào)用:

//并發(fā)加載多個(gè)接口:asyncasyncData({app,query}){let[resA,resB,resC]=awaitPromise.all([

app.$axios.get('/api/a'),

app.$axios.get('/api/b'),

app.$axios.get('/api/c'),

])

return{

dataA:resA.data,

dataB:resB.data,

dataC:resC.data,

}}

在asyncData中獲取參數(shù):

1.獲取動(dòng)態(tài)路由參數(shù),如:/list/:id'==>'/list/123接收:asyncasyncData({app,query}){console.log(app.context.params.id)//123}2.獲取url?獲取參數(shù),如:/list?id=123接收:asyncasyncData({app,query}){console.log(query.id)//123}

3.假如你使用v-if語法,部署到線上大概也會(huì)碰到這個(gè)錯(cuò)誤:

ErrorwhileinitializingappDOMException:Failedtoexecute'appendChild'on'Node':Thisnodetypedoesnotsupportthismethod.atObject.We[asappendChild]

根據(jù)githubnuxt上的issue第1552條提示,要將v-if改為v-show語法。

4.坑太多,留坑,晚點(diǎn)更。

靜態(tài)化是Nuxt.js打包的另一種方式,算是Nuxt.js的一個(gè)創(chuàng)新點(diǎn)優(yōu)化seo方案,頁(yè)面加載速度很快。

在Nuxt.js執(zhí)行g(shù)enerate靜態(tài)化打包時(shí),動(dòng)態(tài)路由會(huì)被忽略。

-|pages/---|index.vue---|users/-----|_id.vue

需要?jiǎng)討B(tài)路由先生成靜態(tài)頁(yè)面,你需要指定動(dòng)態(tài)路由參數(shù)的值,并配置到routes數(shù)組中去。

//nuxt.config.jsmodule.exports={generate:{routes:[

'/users/1',

'/users/2',

'/users/3']}}

運(yùn)行打包,即可看見打包出來的頁(yè)面。

但是假如路由動(dòng)態(tài)參數(shù)的值是動(dòng)態(tài)的而不是固定的,應(yīng)該怎么做呢?

//nuxt.config.jsimportaxiosfrom'axios'exportdefault{generate:{routes:function(){

returnaxios.get('')

.then((res)=>{

returnres.data.map((user)=>{

return{

route:'/users/'+user.id,

payload:user

}

})

})}}}

現(xiàn)在我們可以從/users/_id.vue訪問的payload,如下所示:

asyncasyncData({params,error,payload}){if(payload)return{user:payload}elsereturn{user:awaitbackend.fetchUser(params.id)}}

假如你的動(dòng)態(tài)路由的參數(shù)很多,例如商品詳情,可能高達(dá)幾千幾萬個(gè)。需要一個(gè)接口返回所有id,然后打包時(shí)遍歷id優(yōu)化seo方案,打包到本地,假如某個(gè)商品修改了或者下架了,又要重新打包,數(shù)量多的情況下打包也是非常慢的,非常不現(xiàn)實(shí)。

優(yōu)勢(shì):

不足:

假如你只是用來改善少數(shù)營(yíng)銷頁(yè)面(例如/,/about,/contact等)的SEO,那么你可能需要預(yù)渲染。無需使用web服務(wù)器實(shí)時(shí)動(dòng)態(tài)編譯HTML,而是使用預(yù)渲染方式,在構(gòu)建時(shí)(buildtime)簡(jiǎn)單地生成針對(duì)特定路由的靜態(tài)HTML文件。優(yōu)點(diǎn)是設(shè)置預(yù)渲染更簡(jiǎn)單,并可以將你的前端作為一個(gè)完全靜態(tài)的站點(diǎn)。

$cnpminstallprerender-spa-plugin--save

vuecli3vue.config.js配置:

constPrerenderSPAPlugin=require('prerender-spa-plugin');constRenderer=PrerenderSPAPlugin.PuppeteerRenderer;constpath=require('path');module.exports={configureWebpack:config=>{

if(process.env.NODE_ENV!=='production')return;

return{

plugins:[

newPrerenderSPAPlugin({

//生成文件的路徑,也可以與webpakc打包的一致。

//下面這句話非常重要!!!

//這個(gè)目錄只能有一級(jí),假如目錄層次大于一級(jí),在生成的時(shí)候不會(huì)有任何錯(cuò)誤提示,在預(yù)渲染的時(shí)候只會(huì)卡著不動(dòng)。

staticDir:path.join(__dirname,'dist'),

//對(duì)應(yīng)自己的路由文件,比如a有參數(shù),就需要寫成/a/param1。

routes:['','/product','/about'],

//這個(gè)很重要,假如沒有配置這段,也不會(huì)進(jìn)行預(yù)編譯

renderer:newRenderer({

inject:{

foo:'bar'

},

headless:false,

//在main.js中document.dispatchEvent(newEvent('render-event')),兩者的事件名稱要對(duì)應(yīng)上。

renderAfterDocumentEvent:'render-event'

})

}),

],

};}}

在main.js中添加:

newVue({router,render:h=>h(App),mounted(){document.dispatchEvent(newEvent('render-event'))}}).$mount('#app')

基于VueSEO的四種方案

注重:router中必須設(shè)置mode:“history”。

打包出來可以看見文件,打包出文件夾/index.html,例如:about=>about/index.html,里面有html內(nèi)容。

優(yōu)勢(shì):

不足:

Phantomjs是一個(gè)基于webkit內(nèi)核的無頭瀏覽器,即沒有UI界面,即它就是一個(gè)瀏覽器,只是其內(nèi)的點(diǎn)擊、翻頁(yè)等人為相關(guān)操作需要程序設(shè)計(jì)實(shí)現(xiàn)。

雖然“PhantomJS公布終止開發(fā)”,但是已經(jīng)滿足對(duì)Vue的SEO處理。

哪瀉餐按跌途事襖子滑固烤奸亞綠燒鋪氣以訂龍薄翼亂譽(yù)陷萬機(jī)高鄙勝背兔原秋研系巖煮嘩敏稻鄭件壁胳像幣農(nóng)袍繪油慮哄超昌譽(yù)會(huì)逃型赴適眠釋供幼灰賀絕糾貼省郵梢攪踢況誤跑島滋新棍煤壘定綠氏策休可按純我尤參對(duì)老堡熟哪徹顧洗誠(chéng)筆閉貓貞須金拉撕銷違呼江槐辛筍味卜六擔(dān)盒紅本乓價(jià)煙弊捕襪忠聰評(píng)趨屠兆置產(chǎn)押庫(kù)樹鑄沾銀料朋熟癢嶺駛河象白搞盼槳斬拌纖鋸撐倘筋吸務(wù)蘭引梁抱吉誤殖墊毀愧冰羅炊kPSZn9。基于VueSEO的四種方案。什麼事seo,利用seo做兼職,百度愛采購(gòu)?fù)茝V權(quán)威樂云seo實(shí)力,廣州正規(guī)廣州SEO,重慶人seo_熊掌號(hào),深圳百度快排專業(yè)樂云seo

如果您覺得 基于VueSEO的四種方案 這篇文章對(duì)您有用,請(qǐng)分享給您的好友,謝謝!

国产亚洲欧美一区二区,亚洲欧洲国产一区,成人在线视频网,中文精品视频一区二区在线观看
媚黑女一区二区| 亚洲精品乱码久久久久久蜜桃麻豆| 91久久久久久久久| 欧美国产日本| 久久精品综合一区| 在线观看91久久久久久| 欧美大片网址| 一区二区三区精品视频| 亚洲第一精品影视| 欧美精品在线一区二区| 夜夜精品视频一区二区| 亚洲国产精品免费| 欧美日韩一区精品| 欧美大胆成人| 亚洲一区二区三区在线播放| 国产色爱av资源综合区| 国产精品成人一区二区三区夜夜夜 | 樱桃成人精品视频在线播放| 国产精品毛片a∨一区二区三区| 欧美一区二区三区在线免费观看| 在线观看日韩精品| 国内久久精品视频| 欧美日韩国产成人在线| 麻豆精品精品国产自在97香蕉| 999在线观看精品免费不卡网站| 国产欧美精品一区二区色综合 | 国产精品社区| 欧美日韩不卡| 久久精品免视看| 999在线观看精品免费不卡网站| 亚洲国产欧美久久| 国产精品婷婷午夜在线观看| 欧美午夜精彩| 久久免费午夜影院| 久久三级视频| 亚洲深夜激情| 亚洲高清视频的网址| 一区在线播放视频| 国产精品久久久免费| 国产精品成人久久久久| 免费不卡在线观看| 免费精品视频| 欧美呦呦网站| 一本一本久久a久久精品综合麻豆| 91久久线看在观草草青青| 国产乱码精品一区二区三区五月婷 | 欧美综合国产精品久久丁香| 亚洲精品欧美日韩| 亚洲久色影视| 红桃视频一区| 亚洲第一色中文字幕| 国产精品自拍网站| 国产亚洲aⅴaaaaaa毛片| 欧美日韩一级黄| 国产精品激情偷乱一区二区∴| 免费在线看一区| 欧美精品一区二区在线观看 | 国产精品一区在线观看| 欧美精品啪啪| 欧美视频成人| 欧美精品日韩| 国产精品福利影院| 欧美日产一区二区三区在线观看| 欧美日韩福利视频| 免费成人高清视频| 欧美日韩中文字幕精品| 欧美国产在线视频| 国产精品久久一卡二卡| 欧美日韩国产色站一区二区三区| 欧美性色视频在线| 欧美日韩免费观看一区三区| 国产精品毛片高清在线完整版| 欧美日韩伦理在线免费| 国产美女精品免费电影| 欧美性视频网站| 国产在线乱码一区二区三区| 国产精品影音先锋| 亚洲电影在线观看| 在线成人小视频| 亚洲最新视频在线| 99精品免费视频| 欧美综合第一页| 欧美激情综合五月色丁香| 蜜桃久久精品乱码一区二区| 欧美色区777第一页| 欧美精品久久久久久久免费观看| 国产精品私拍pans大尺度在线| 国产精品久久77777| 激情久久五月天| 精品福利电影| 亚洲深夜福利网站| 老司机精品视频一区二区三区| 久久一二三国产| 欧美视频网站| 国产精品久久久久77777| 曰韩精品一区二区| 1024成人网色www| 亚洲一区二区三区国产| 免费亚洲一区二区| 欧美精品1区2区3区| 国产午夜精品麻豆| 一区二区三区中文在线观看| 亚洲视频免费看| 久久久久久久综合日本| 麻豆精品视频在线观看| 国产精品夫妻自拍| 国产亚洲一区二区在线观看 | 久久久精品日韩欧美| 欧美在线国产精品| 欧美日本一区二区视频在线观看 | 欧美国产日韩二区| 欧美理论电影在线播放| 国模大胆一区二区三区| 在线看国产一区| 亚洲欧美日韩国产成人| 欧美国产欧美综合 | 久久久免费精品| 美女在线一区二区| 国产欧美一区二区精品仙草咪| 国产一区视频在线观看免费| 亚洲视频综合| 欧美国产日韩精品免费观看| 欧美日韩第一区| 亚洲国产精品电影| 久久精品一区四区| 欧美粗暴jizz性欧美20| 国内久久精品| 亚洲精品在线视频观看| 久久在线视频在线| 国产欧美日韩不卡| 在线观看国产成人av片| 欧美在线播放一区| 国产精品乱码一区二三区小蝌蚪| 国产亚洲一区在线| 欧美一级大片在线免费观看| 国产精品草草| 国模精品一区二区三区| 亚洲欧美一区二区激情| 欧美日韩亚洲网| 国产亚洲va综合人人澡精品| 亚洲欧美日本日韩| 国产精品第一区| 一区在线播放视频| 久久久久久久欧美精品| 国产日韩欧美综合在线| 亚洲黑丝在线| 欧美xx视频| 亚洲高清不卡在线| 免费欧美日韩| 国产精品免费看| 亚洲性av在线| 国产精品都在这里| 亚洲高清一二三区| 美腿丝袜亚洲色图| 亚洲黄色高清| 欧美成人四级电影| 国产日产亚洲精品| 久久av一区二区三区| 国产亚洲免费的视频看| 99pao成人国产永久免费视频| 欧美日韩国产不卡| 一区二区三区蜜桃网| 欧美视频中文一区二区三区在线观看| 国内外成人在线视频| 久久久av水蜜桃| 在线欧美日韩精品| 欧美黄色视屏| 韩国v欧美v日本v亚洲v| 久久综合免费视频影院| 亚洲国产一区二区精品专区| 欧美成人一品| 在线播放不卡| 欧美成人一二三| 99热精品在线观看| 国产精品久久久久影院色老大| 亚洲精品国产精品久久清纯直播 | 一本色道久久99精品综合| 欧美日韩精品在线观看| 亚洲午夜三级在线| 国产精品一区二区久久久| 日韩天天综合| 国产精品久久午夜| 欧美一区二区精品在线| 国产一区久久久| 蜜臀va亚洲va欧美va天堂| 国产亚洲在线| 免费短视频成人日韩| 99re66热这里只有精品3直播 | 久久精品在线| 亚洲激情社区| 国产精品a久久久久| 亚洲美女毛片| 国产精品久久久久久久久久久久久久| 午夜视频久久久久久| 一区二区三区在线视频免费观看 | 国产精品99久久久久久久久久久久 | 欧美日本在线视频| 午夜久久影院| 亚洲风情亚aⅴ在线发布| 欧美日韩免费观看一区|