美文网首页
vue自定义指令--实现每个页面title不同,且可以动态修改

vue自定义指令--实现每个页面title不同,且可以动态修改

作者: 陶菇凉 | 来源:发表于2021-06-18 14:18 被阅读0次
    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>
    

    相关文章

      网友评论

          本文标题:vue自定义指令--实现每个页面title不同,且可以动态修改

          本文链接:https://www.haomeiwen.com/subject/szlxyltx.html