国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue動態修改網頁標題的方法及遇到問題

2019-11-19 11:22:16
字體:
來源:轉載
供稿:網友

業務需求,進入頁面的時候,網頁有個默認標題,加載的網頁內容不同時,標題需要變更. 例:功能授權,功能授權(張三).

Vue下有很多的方式去修改網頁標題,這里總結下解決此問題的幾種方案:

一、最笨方案

結合業務直接在Vue生命周期函數 created 和 mounted 中,給 document.title賦值。

<script>import axios from 'axios'export default { created () { document.title = '功能授權' }, mounted() { axios.get('***').then((d)=>{ document.title = '功能授權('+ d.Name + ')' }) }}</script>

二、普通方案,使用Vue-Router的beforeEach攔截

項目中使用了Vue Router,在路由文件 index.js 中給需要的路由添加 title。

routes: [{ path: '/', name: 'home', component: () => import('@/pages/home/index'), meta:{ keepAlive: true } }, { path: '/person/auth, name: 'personAuth', component: () => import('@/pages/person/auth), meta:{ title: '功能授權', keepAlive: false } } ]

在路由的beforeEach 攔截器里處理

router.beforeEach((to, from, next) => { /* 路由發生變化修改頁面title */ if (to.meta.title) { document.title = to.meta.title }})

如果想在頁面上依據加載的內容不同再變更title時,請參考方式一的 mounted函數處理邏輯.

三、優雅方案,使用Vue 自定義指令(directive)

如前文所提,頁面獲取不同數據狀態時,需要展示不同的標題。那么我們可以結合vue 自定義指令(directive)可更優雅的處理網頁標題的動態更新。

自定義指令 v-web-title的定義

export default { inserted: function (el, binding) { const { value } = binding if (el.dataset.title) { // 方式1,可以給標簽的data-title的屬性賦值 document.title = el.dataset.title } else if (value && value.title) { // 方式2,指令傳參 document.title = value.title } }, update (el, binding, vnode, oldVnode) { const { value } = binding if (el.dataset.title) { document.title = el.dataset.title } else if (value && value.title) { document.title = value.title } }}

在頁面上使用v-web-title有兩種方式

1.給標簽 data-title屬性賦值

<template> <div v-web-title :data-title="textTitle"></template><script>import axios from 'axios'export default { data(){ return { textTitle:'功能授權' } }, mounted () { axios.get('***').then((d) => { this.textTitle = '功能授權(' + d.Name + ')' }) }}</script>

2.給指令傳參

<template> <div v-web-title="{title:textTitle}"></template><script>import axios from 'axios'export default { data(){ return { textTitle:'功能授權' } }, mounted () { axios.get('***').then((d) => { this.textTitle = '功能授權(' + d.Name + ')' }) }}</script>

四、參考

1. vue單頁面應用中動態修改title 主要介紹使用vue-weachat-title 組件

2.vue.js自定義指令詳解 主要介紹自定義指令的鉤子函數,以及指令傳參等

總結

以上所述是小編給大家介紹的Vue動態修改網頁標題的方法及遇到問題,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 礼泉县| 嘉义县| 文山县| 清远市| 石屏县| 筠连县| 馆陶县| 上蔡县| 榆社县| 湾仔区| 通山县| 武清区| 濮阳县| 开阳县| 惠水县| 达拉特旗| 西丰县| 镇江市| 靖宇县| 绵竹市| 台湾省| 方城县| 新绛县| 南康市| 吉木乃县| 祁东县| 吉隆县| 丹凤县| 本溪市| 伊川县| 南川市| 商洛市| 广元市| 双峰县| 东山县| 兴和县| 邢台市| 肥西县| 神农架林区| 综艺| 农安县|