如何从普通DOM访问Vue组件
情况
我正在和Vue一起构建SPA。 有用Vue-Noty(https://github.com/renoguyon/vuejs-noty)制作的弹出式通知。
我有一个vuex操作,检查会话状态,如果它发现会话已过期,将显示NOTY(";您的会话已过期";)。 现在我想添加一个链接(";在此登录&q;),但我面临一个问题
可以向通知添加<a>
标签。它们也工作得很好。
但是Vue spa当然不喜欢普通的<a>
标签.
我需要一个<router-link>
。但这并不起作用,它必须从.VUE文件中解析出来才能生成适用于单页导航的<a>
。
Noty可以处理标记,但如果我将其添加到Noty Like
this._vm.$noty.error('Your Session has expired, please <router-link to="/login">log in again</router-link>.')
,它当然会作为文字<router-link>
标记出现,这将不起作用。
所以我的下一个想法是在那里放一个<a>
和一个onClick="this.$router.push('/login')"
当然,这也不起作用,因为普通DOM元素中没有this
。
我的下一个想法是:也许我可以通过window.document
访问VUE路由器,但我没有找到方法
问题
如何从外部VUE组件或实例调用$router.push
方法,从";普通DOM&Quot;?
解决方案
您可以尝试:
app.__vue__.$router.push({'name' : 'home'})
相关文章