我在申请中有以下途径:

const router = new Router({
  mode: 'history',
  scrollBehavior: () => ({ y: 0 }),
  routes: [
    { path: '/', component: HomePage, meta: { pageType: 'home'} },
  ],
});

在通用js模块上:

const trackEvent = {
  getFields: () => {
   //here need to access meta fields(pageType) of current route. how is it possible ?
  }
}
export default trackEvent;

我想访问公共模块中的元字段.怎么可能?

推荐答案

在Vue实例上,可以通过this.$route.meta访问meta属性.把它传给getFields方法.

export default {
  created() {
    let meta = getFields(this.$route.meta);
  }
}

getFields: (meta) => {
  console.log(meta);

  return meta.fields.pageType; // not sure what you're trying to return exactly
}

如果无法通过当前路由,则需要导入router对象并从中获取当前路由:

import router from 'path/to/your/router'

const trackEvent = {
  getFields: () => {
    let meta = router.currentRoute.meta;
    console.log(meta);

    return meta.fields.pageType; // not sure what you're trying to return exactly
  }
}
export default trackEvent;

Vue.js相关问答推荐

无法解析组件:google—pay—button

为什么我的数组在 onBeforeMount 函数中不为空,但在 onMounted 函数中为空

可组合数据获取示例

Vue CLI: 如何在一个vtextfield更改时让另一个vtextfield的值也同时更改,但同时又可以覆盖它?

Vue3如何将自定义事件绑定到路由视图中的特定组件?

Vue3 动态渲染

在重复内容区域中添加

如何使用 Vue 命名插槽呈现静态内容列表?

Vuetify v-data-table ,如何在 HTML 中呈现标题文本?

使用 Vue Router 设置页面标题

使用 Vue.js (cdn) 在特定元素上切换显示/隐藏

axios.patch / axios.put 在 Vue 和 Laravel 中不起作用

Vuetify 单选按钮未显示为选中状态

Vuex - 何时从 http 服务器加载/初始化存储数据

npm run dev 和 npm run production 的区别

找不到模块 'babel-core' 但已安装 @babel/core

VueJS 2 在多个组件上debounce

如何在 vue.js 2 上循环对象观察者?

Bootstrap-vue:如何将数据传递给模态?

NPM:403 禁止 - PUT http://registry.npmjs.org/[package-name] - 禁止