vue+vue-meta-info動態(tài)設(shè)置meta標(biāo)簽教程
在寫移動端項目的時候,通常都會設(shè)置meta禁止用戶縮放。
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
最近的需求中,個別頁面允許用戶縮放,就需要給不同的頁面設(shè)置不同的meta了。
但是vue是單頁面應(yīng)用,沒辦法向原生一樣給每個頁面設(shè)置不同的頭信息。所以就需要借助到vue-meta-info了。
vue-meta-info官方介紹
vue-meta-info 是一個基于vue 2.0的插件,它會讓你更好的管理你的 app 里面的 meta 信息。
你可以直接 在組件內(nèi)設(shè)置 metaInfo 便可以自動掛載到你的頁面中。
如果你需要隨著數(shù)據(jù)的變化,自動更新你的title、meta等信息,那么用此 插件也是再合適不過了。
當(dāng)然,有時候我們也可能會遇到讓人頭疼的SEO問題,那么使用此插件配合 prerender-spa-plugin 也是再合適不過了
vue-meta-info使用
npm install vue-meta-info --save
在main.js中全局引入
import MetaInfo from 'vue-meta-info'; Vue.use(MetaInfo);
在組件內(nèi)靜態(tài)使用
<template>
? ...
</template>
?
<script>
? export default {
? ? ?metaInfo: {
? ? ? title: '操作手冊',
? ? ? ?meta: [
? ? ? { name:'viewport', content:
? ? ? 'width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0'}
? ? ]
? ? },
? }
</script>?需要注意的是:vue-meta-info并不是直接改變頁面的meta信息,而是在下面追加一條覆蓋上面的,如下圖:

所以只為某一個頁面設(shè)置了,會影響別的頁面的。就需要根據(jù)路由切換來動態(tài)設(shè)置了。在App.vue中監(jiān)聽路由變化
<template>
<div id="app">
<keep-alive>
<router-view />
</keep-alive>
</div>
</template><script>
export default {
name: "App",
metaInfo() {
return {
meta: this.metaData
}
},
data() {
return {
metaData: [{
name: 'viewport',
content: 'width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'
}]
}
},
watch: {
$route(to, from) {
if (to.name == 'pdf') {
this.metaData = [{
name: 'viewport',
content: 'width=device-width, user-scalable=yes, initial-scale=1.0, maximum-scale=3.0, minimum-scale=1.0'
}]
} else {
this.metaData = [{
name: 'viewport',
content: 'width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'
}]
}
},
},
};
</script><style lang='less'>
#app {
font-family: "Avenir", Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
color: #2c3e50;
}
</style>
如果需要改動的頁面太多,比如要做seo,給頁面設(shè)置keywords和description的。也可以在router中配置,結(jié)合vuex去設(shè)置更加優(yōu)雅一點把。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實現(xiàn)監(jiān)聽dom節(jié)點寬高變化方式
這篇文章主要介紹了Vue實現(xiàn)監(jiān)聽dom節(jié)點寬高變化方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
Vue-CLI 3.X 部署項目至生產(chǎn)服務(wù)器的方法
這篇文章主要介紹了Vue-CLI 3.X 部署項目至生產(chǎn)服務(wù)器的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
vue如何移動到指定位置(scrollIntoView)親測避坑
這篇文章主要介紹了vue如何移動到指定位置(scrollIntoView)親測避坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
vue-cli項目中img如何使用require動態(tài)獲取圖片
這篇文章主要介紹了vue-cli項目中img如何使用require動態(tài)獲取圖片,具有很好的參考價值,希望對大家有所幫助。2022-09-09

