deboyblog / vue-wechat-title

为Vuejs设计的动态设置微信网页中标题的指令

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

求助。

zzmm1 opened this issue · comments

commented

感谢你,请问我用this.$route.meta.title =this.title这种方式修改title,但也不好使,有时候有用,有时候没用,请问这是怎么回事呢。

commented

不建议直接修改 $route.meta 的值来达到修改标题的目的
如果你希望不仅仅是使用$route的meta信息来决定标题
可以使用 computed 或者通过一个变量, Vuex 来控制

commented

非常感谢您的回复,我的需求是这样的:
我用vue做了套SPA应用,通过vue-router来实现各“页面”的访问,我想实现每个“页面”都是动态获取的title,然后“页面”分享到微信朋友圈都有自己的title,而不是index.html里面的title。
请问,我这需求怎么好搞点呢?另外,不想使用微信的Js-Sdk

commented

我用安卓和苹果的机子测试过(微信最新版)分享出去的 是动态设置的标题
如果你不希望使用 js-sdk 来控制URL
假设你的网页标题是根据文章标题来定的 我提供思路

有使用 vuex 的前提

  1. 定义一个 vuex mutation 功能是修改某个 state 让后把标题设置成这个 state 对应的 getters
  2. 在获取到数据后 commit 这个 mutation 普通路由切换 同样在路由的 beforeEachcommit
  3. 在用户加载完成之后 标题就已经改变了 此时分享出去的 就是最新的标题

没有使用 vuex

  1. App.vue 定义 computed 可以是挂载在 window 下的全局变量 也可以挂载在 Vue 的全局变量中
  2. 通过改变这个变量来控制
commented

你的vue-wechat-title实例,我苹果机微信测试也是动态标题的,我用这种方式this.$route.meta.title =this.title动态设置标题就不好使了。

是的,我的网页标题是根据文章标题来定的。

你提供的这个思路必须要使用vuex吗?

commented

@zzmm1 不一定 上面的回复更新了新的方案
第二种方案 测试过程中必须确保 computed 是更新了
如果没有,可以尝试添加 cache: false

commented

好的,我就用computed 来试试,有什么最新情况,我再向你反馈。
再次感谢您的帮助。