当前位置: 首页 > 知识库问答 >
问题:

vue3 弹窗组件没有注册,为什么可以直接使用?

慕胡媚
2024-01-15

定义在components文件下的子组件

<template>  <van-popup v-model:show="show" :style="{ padding: '64px' }">内容</van-popup></template><script>import { defineComponent, ref } from 'vue'export default defineComponent({  // eslint-disable-next-line vue/multi-word-component-names  name: 'Login',  setup() {    const show = ref(true)    return {      show    }  }})</script>

然后在views文件夹中,直接使用,并没有import引入,也没有注册在components中为什么可以直接使用

<template>  <div class="home">    <Login></Login>  </div></template><script>import { defineComponent, onMounted, ref } from 'vue'export default defineComponent({  name: 'Home',  components: {},  setup() {}})

共有4个答案

柏修洁
2024-01-15

如果是自定义组件,你没有在当前使用该组件的组件引入(Vue3组件内引入组件不需要注册),那肯定是全局引入了,你全局搜索文件名,看看哪些文件内出现了,大概就可以找到问题所在了。

张锐藻
2024-01-15

全局搜索 Login (假设这是你的子组件文件名)

仲元凯
2024-01-15

Vue3 社区有一个 unjs 的团队,里面有一堆自动引入处理的工具。比如说自动引入组件的 unimport,可以看看你的项目是否有使用。

当然也有可能你们在 main.js 中使用 app.component() 全局注册了组件 �� #全局注册 - 组件注册 | Vue.js

满伟彦
2024-01-15

首先,需要理解 Vue 3 中的组件注册机制。在 Vue 3 中,组件可以在全局范围内注册,也可以在局部范围内注册。

如果你在 components 文件夹中定义了一个组件,那么这个组件默认会在全局范围内注册。这意味着你可以在应用的任何地方直接使用这个组件,而无需再次导入或注册。

在你的示例中,你定义的 Login 组件位于 components 文件夹中,因此它已经在全局范围内注册。因此,你可以在 views 文件夹中的 Home 组件模板中直接使用 <Login></Login>,而无需再次导入或注册。

另外,需要注意的是,虽然你的 Login 组件定义中包含了 import { defineComponent, ref } from 'vue',但这并不意味着你必须在其他地方再次导入或注册这个组件。这个导入语句是在 Login 组件的定义中使用的,而不是在 Home 组件中使用的。

总结一下,你的 Login 组件之所以可以直接在 Home 组件中使用,是因为它已经在全局范围内注册了。如果你想在局部范围内使用这个组件,你可以将它导入到需要使用的组件中,并在该组件的 components 选项中进行注册。

 类似资料:
  • 子组件 在expansion函数中可以直接修改父组件的值,vue也不会报警告,这是被允许的吗?为什么可以正常修改

  • 我试图从弹性搜索获取记录,我得到这个错误如下 我的Java代码如下 请让我知道,如果我错过了一些东西,而试图索引,我是新的弹性搜索。 同样,如果我想在我的查询中包括一个以上的条件,如下面所示 下面是上述查询的结果,它工作正常 我如何与上面的geoboundingbox查询相结合?我需要将其添加为过滤器吗? 更新:依赖关系 提前谢谢Rakesh

  • 有人能帮我解决这个问题吗?我收到一个错误返回:“没有为[注册查询或]”我是否结构错误?它应该过滤区域为530且开始为空白或区域为530且开始为“06192013”的所有结果,然后在此基础上使用其他过滤器提升文档。

  • 大佬们,为什么测试环境会报dialogVisible is not defined?

  • 我试图理解JTA,并将Bitronix用作首选的事务管理器(只是为了学习和理解)。我正在看《Bitronix参考指南》中的代码,我想知道:如果我使用的是JDBC,它本身就是事务性的(连接可以提交/回滚),为什么我要编写这样的代码?!?! 现在,这段代码的要点可能是简单地演示如何在现有事务性数据存储上使用Bitronix/JTA,但我仍然不知道它提供了什么固有的好处。 然后,这个代码片段让我思考:“

  • 我已经在我的本地机器中用Keycloak设置了一个web应用程序。由于Im使用Keycloak作为SSO实现,我希望在我的web应用程序中,无论何时单击注册按钮,用户都被引导到注册页面,而不是通过登录页面。 这是指向注册表单的示例URL,但是,它包含一个,它像会话ID一样随机生成。 https://site.test/auth/realms/custom/login-actions/authent