首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuejs helper with route

Vuejs helper with route
EN

Stack Overflow用户
提问于 2019-11-15 01:31:11
回答 2查看 299关注 0票数 0

我有一个在整个应用程序中使用的函数。我想将这个函数导出到一个模块中,并在需要的地方导入。

组件内部的函数:

代码语言:javascript
复制
navigate: debounce(function() {
  this.$router.push({
    path: '/cars',
    query: this.params
  })
}, 200)

如何将此函数导出到模块并在组件上使用?

EN

回答 2

Stack Overflow用户

发布于 2019-11-15 01:53:37

可以将函数添加到mixin (https://vuejs.org/v2/guide/mixins.html)中

funcs.js:

代码语言:javascript
复制
export default
{
  methods:
  {
    navigate()
    {
      debounce(() =>
      {
        this.$router.push({
          path: '/cars',
          query: this.params
        });
      }, 200);
    }
  }
}

component.vue:

代码语言:javascript
复制
import funcs from './funcs.js'

export default
{
  ...
  mixins: [funcs],
  ...
}
票数 1
EN

Stack Overflow用户

发布于 2019-11-15 02:05:34

考虑到您提到的在应用程序中经常使用的方法,您可以向Vue路由器实例添加一个新方法。

代码语言:javascript
复制
const router = new VueRouter({
  routes 
})


// Create and export a pass-through API so you can use it just like router.push
export const debouncedPush = debounce(router.push, 200);

// Add debouncedPush method on the router
router.debouncedPush = debouncedPush

const app = new Vue({
  router
}).$mount('#app') 

然后,在组件代码中,您可以像这样使用它

代码语言:javascript
复制
this.$router.debouncedPush({path: '/cars', query: this.params})

或者,您可以只导入如下方法:

代码语言:javascript
复制
import { debouncedPush } from './path/to/file'
debouncedPush({path: '/cars'})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58862639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档