vue.js - 访问 Vue3 全局组件

标签 vue.js vuejs2 vue-component vuejs3

所以我正在尝试将这个 Vue2 项目转换为 Vue3(typescript)。

它在全局注册组件并访问它们以匹配我商店中的值,但是当尝试在 Vue3 中实现它时,组件保持未定义状态。

import getComponentTypeForContent from "../api/getComponentTypeForContent";
import { mapState } from "vuex";
import { defineComponent } from "vue";

export default defineComponent({
  name: "PageComponentSelector",
  beforeCreate: function () {
    console.log("CREATED PAGECOMPONENTSELECTOR");
  },
  computed: mapState({
    model: (state) => state.epiDataModel.model,
    modelLoaded: (state) => state.epiDataModel.modelLoaded,
  }),
  methods: {
    getComponentTypeForPage(model) {
      // this.$options.components will contain all globally registered components from main.js
      return getComponentTypeForContent(model, this.$options.components);
      // this.$options.components fetches all components for vue2 app
    },
  },
});

并像这样注册组件:

//Pages
import LoginPage from "./components/pages/Login.vue";

const appAdv = createApp(App);

//Register components
appAdv.component("LoginPage", LoginPage);

appAdv.use(store).use(router).mount("#appAdv");

找不到(或搜索不好)如何在 vue3 中执行此操作或类似操作,所以我来这里希望有人能提供帮助呵呵

最佳答案

我也经常在子组件中使用父组件,但没有(或没有)使用 App.component 方法

在 vue3 中我通常使用 provide/inject 。方法

提供

const app = createApp(App);
app.provide('someVarName', someVar);  // `Provide` a variable to all components here

注入(inject):

// In *any* component
const { inject } = Vue;
...
setup() {
  const someVar = inject('someVarName');   // injecting variable in setup

  return {someVar}
}

关于vue.js - 访问 Vue3 全局组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66273763/

相关文章:

vue.js - 一行条件在 Vue js 中的数据中不起作用

javascript - 2018 相当于 jQuery 的基本 sizzle 选择器?

vue.js - Jest + Nuxt + Nuxt-Fire 在测试套件中失败

javascript - vue2表单元素列表

javascript - vue.js :selected doesn't triggering @change event select/option

vue.js - 如何删除vue表中的整列?

javascript - Vue插槽: How to parse then render slot components

javascript - 如何正确编写 vuepress 插件?

javascript - 使用 vue.js 按提交后将用户重定向到不同页面

javascript - 使用 Vue Js 切换类,从组件中获取所有 props