如何通过 vue 实例访问 vue 路由当前显示的单页里的方法?

2017-07-11 16:34:12 +08:00
 matts8023

由于项目需要,用了 SPA 方式进行开发,使用的是 webpack + vue-loader + vue + vue-router。概要代码如下:

// main.vue
<template>
  <router-view ref="routerInstance"></router-view>
</template>


// index.vue
<template>
  <h>Index!!!</h>
</template>
<script>
export default {
  methods: {
    callFromOutside() {
       alert()
    }
  }
}
</script>


// router.js
module.exports = {
  routes: [{
    name: 'Index',
    path: '/',
    component: require('./index.vue')
  }]
}

如果想从 vue 实例对象访问 index.vue 里的 callFromOutside,假设是 vue 实例变量为 vm,同时当前路由页是 Index,则直接调用:

vm.$refs.routerInstance.callFromOutside()

会提示 undefined。请问这里是哪里出问题了?

2641 次点击
所在节点    前端开发
1 条回复
klausgao
2017-07-12 07:13:23 +08:00
公共方法就直接封装进一个 base.js 啊,然后 import 进来就可以用了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX