1、main.js中定义全局指令:v-myTitle
Vue.directive('myTitle', {
inserted: function (el, binding) {
const { value } = binding
// 方式1,直接给v-myTitle标签的 data-title 属性赋值
if (el.dataset.title) {
document.title = el.dataset.title
}
// 方式2,通过指令传参({{xxx}})
else if (value && value.title) {
document.title = value.title
}
},
update (el, binding) {
const { value } = binding
if (el.dataset.title) {
document.title = el.dataset.title
} else if (value && value.title) {
document.title = value.title
}
}
})
2、在各个vue页面中,使用v-myTitle配置页面title
方式一:直接给v-myTitle标签的 data-title 属性赋值
<template>
<div v-myTitle :data-title="textTitle">
// 页面代码块
</div>
</template>
<script>
export default {
name: 'Login',
data () {
textTitle: '自定义标题001'
}
}
}
</script>
方式2,通过指令传参({{xxx}})
<template>
<div v-myTitle="{title:textTitle}">
// 页面代码块
</div>
</template>
<script>
export default {
name: 'Login',
data () {
textTitle: '自定义标题001'
}
}
}
</script>
只要在需要变化title的Vue页面中使用自定义的指令,就可以实现不同页面的标题变化,而且可以进行动态修改,实测有效~
本文介绍如何在Vue项目中使用自定义指令v-myTitle动态设置不同页面的标题,支持两种方式:直接给标签的data-title属性赋值或通过指令传参。实操有效,适用于需要动态修改页面标题的场景。
1万+

被折叠的 条评论
为什么被折叠?



