思路:
1)由于vue是单页面应用,index.html入口文件< head >标签只有一个,那么只能通过判断切换的路由
2)判断切换路由 需要在main.js全局js中 使用 router.beforeEach,to中可以获得将要去的组件的路由参数
3)如果title和meta标签内容是已经定好的,那就在router.js文件中设置需要辨别的参数–》在meta对象里自定义一个变量名 如:content / title,路由切换时直接读取
4)如果title和meta标签内容是后台配置的,我现在是请求接口获取。 传参是数字
可以在router.js文件中设置需要辨别的参数–》在meta对象里自定义一个数字变量名 如:index,这里有一个好处是哪些页面的title和meta标签内容是一样的 就可以设置一样的index,同样 路由切换时直接读取
5)下面就是请求接口,写个函数,该传参的传参,获取到接口的结果后 append给head标签
总体思路是这样,中间有些细节问题
1)刚进去的时候没有路由切换 或者切换完路由后刷新了页面 也就相当于没切换
有两种情况:一是第一次进入,index默认是首页的;二是切换了路由,这个可以在切换路由是记住这个变量
解决办法是:使用sessionstorage,无论首次还是刷新,只要改变储存的同一个变量
2)来回切换时 每次都创建一个新标签< meta > 和 < title >,需要销毁上一次的内容
3)路由里的index相同时 可以不请求,判断 router.beforeE