中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于Vue的SPA動態修改頁面title的方法(推薦)

發布時間:2020-10-25 17:48:40 來源:腳本之家 閱讀:245 作者:Я!ńɡ 欄目:web開發

最近基于VUE做個SPA手機端web發現動態修改頁面標題通過document.title=xxxx 來修改著實蛋疼,而且在IOS的微信端據說沒效果。百度發現要針對IOS的微信做點額外的操作,即:創建一個隱藏的Iframe,然后隨便加載一個圖片文件,然后加載完成移除,這樣就能修改頁面title了。網上有幾種方案:

1,App.Vue里面設置title屬性,然后頁面title去綁定,所有子組件修改標題就通過 this.$root.data.title=xxxxx;去修改

缺點:App.Vue默認的el只是body的一個DIV,這樣干需要綁定整個html

2,通過自定義指令實現

Vue.directive('title', {
 inserted: function (el, binding) {
 document.title = el.innerText
 el.remove()
 }
})

調用方法: <div v-title>標題內容</div>

優點:這樣自定義程度較大(暫且不討論IOS微信端是否能修改成功)

缺點:無法滿足某些JS方法中修改頁面標題的需求,例如頁面為一個websocket的頁面,收到消息要動態顯示頁面標題這時候頻繁去修改div綁定的text并不恰當

針對網上查到的上面兩種方法,我進行了合并,利用vue的插件實現SPA的頁面標題修改:

var plugin={};
plugin.install=function(Vue,options){
 Vue.prototype.$title=function(title){
  document.title=title;
  var iframe=document.createElement("iframe");
  iframe.style.display='none';
  iframe.setAttribute('src','/e.png');
  var loadedCallback=()=>{
   iframe.removeEventListener('load',loadedCallback);
   document.body.removeChild(iframe);
  };
  iframe.addEventListener('load',loadedCallback);
  document.body.appendChild(iframe);
 };
};
module.exports=plugin;

調用方法: this.$title('xxxxxx'); 當然你可以替換為一個綁定的變量,然后watch進行實時調整。

ps:Vue Spa切換頁面時更改標題

在Vue組件化開發過程中,因為是單頁面開發,但是有時候需要頁面的title根據情況改變,于是上網查了一下,各種說法花(wo)里(kan)胡(bu)哨(dong), 于是想到一個黑科技 documet.title="xxx";

隨便創建一個項目,在獨立的模塊中,created在鉤子函數啟動之后document.title='標題'; 但是據說在IOS的微信下是無效的,雖然用蘋果機測試過有用,但是想到這樣會影響我的代碼潔癖。

<script>
export default {
  data(){
    return{
    }
  },
  created(){
    document.title="首頁"
  },
}
</script>

于是在github上找到一個好用的東西 vue-wechat-title

通過 npm install vue-wechat-title  安裝

引入需要的vue-router與頁面需要的組件之后

const router = new VueRouter({
  mode: 'history',
  routes:[
    {
    name: 'index',
    path: '/',
    meta: {
        title: '首頁'
     },
     component: index
    },
   {
     name: 'root',
     path: '/root', 
     meta: {
        title: '肉特'
    },
    component: root
    }  
 ]
});
Vue.use(require('vue-wechat-title')); //實例化參數

在組件中頂部添加一段 <div v-wechat-title="$route.meta.title"></div>

即可實現改變title效果。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凉山| 长沙县| 枣庄市| 康平县| 苏尼特右旗| 壶关县| 雅江县| 汉川市| 陈巴尔虎旗| 囊谦县| 江孜县| 宣武区| 扶绥县| 唐海县| 高碑店市| 肃宁县| 全南县| 邵武市| 汉中市| 基隆市| 天祝| 庆阳市| 房山区| 融水| 西城区| 化隆| 大悟县| 新密市| 夏津县| 灯塔市| 阜新| 安多县| 苍山县| 梅河口市| 区。| 新安县| 镇宁| 邵武市| 收藏| 广德县| 祥云县|