两周掌握Vue3(三):全局组件、局部组件、Props

这篇具有很好参考价值的文章主要介绍了两周掌握Vue3(三):全局组件、局部组件、Props。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码仓库:跳转
本博客对应分支:03

一、全局组件

Vue 3 中的全局组件是在应用程序中全局注册的组件,可以在任何地方使用,而不需要在每个组件中都单独注册。

1.创建全局组件

在components目录下创建全局组件MyGlobalComponent.vue:

<!-- components/MyGlobalComponent.vue -->
<template>
    <div>This is my global component</div>
</template>
  
<script>
export default {
    name: 'MyGlobalComponent'
};
</script>

2.在main.js中注册全局组件

import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);

// 注册全局组件
import MyGlobalComponent from './components/MyGlobalComponent.vue';
app.component('MyGlobalComponent', MyGlobalComponent);

app.mount('#app');

3.使用全局组件

在App.vue中尝试使用我们定义和注册的全局组件:

<!-- App.vue -->
<template>
  <div id="app">
    <!-- 使用全局组件 -->
    <MyGlobalComponent ></MyGlobalComponent>
    <HelloWorld />
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue';

export default {
  name: 'App',
  components: {
    HelloWorld
  }
};
</script>
  • 效果:

vue3注册了ui组件全局怎么调用,前端,vue.js,javascript,前端

二、局部组件

在 Vue 3 中,局部组件是指在单个组件内部注册和使用的组件。这意味着局部组件只能在其父组件内部使用,而无法在其他组件中直接使用。要在 Vue 3 中创建一个局部组件,可以在父组件的 components 选项中注册它,然后在父组件的模板中使用它。

1.创建局部组件

在components目录下创建局部组件MyLocalComponent.vue:

<!-- components/MyLocalComponent.vue -->
<template>
    <div>
        <h2>这是局部组件</h2>
        <p>我只能在父组件内部使用</p>
    </div>
</template>
  
<script>
export default {
    name: 'MyLocalComponent'
};
</script>
  

2.在另一个组件中注册、使用局部组件

<!-- App.vue -->
<template>
  <div id="app">
    <!-- 使用全局组件 -->
    <MyGlobalComponent></MyGlobalComponent>
    <!-- 使用局部组件 -->
    <MyLocalComponent></MyLocalComponent>
    <HelloWorld />
  </div>
</template>

<script>
// 引入并注册局部组件
import HelloWorld from './components/HelloWorld.vue';
import MyLocalComponent from './components/MyLocalComponent.vue';

export default {
  name: 'App',
  components: {
    HelloWorld,
    MyLocalComponent
  }
};
</script>
  • 效果:

vue3注册了ui组件全局怎么调用,前端,vue.js,javascript,前端

三、Props

在 Vue 3 中,props 是用于从父组件向子组件传递数据的机制。通过 props,父组件可以向子组件传递数据,子组件可以接收并使用这些数据。

1.定义一个子组件

在components目录下创建一个子组件ChildComponent.vue:

我们定义了一个名为 message 的 prop,并使用了 props 的验证功能。我们指定了它的类型为 String,并且设置为必需的(required: true)。这意味着父组件在使用 ChildComponent 时必须传递一个名为 message 的字符串类型的数据。

<!-- ChildComponent.vue -->
<template>
    <div>
      <h2>子组件</h2>
      <p>{{ message }}</p>
    </div>
  </template>
  
  <script>
  export default {
    props: {
      message: {
        type: String,
        required: true
      }
    }
  };
  </script>
  

2.定义一个父组件

在components目录下创建一个子组件ParentComponent.vue:

在父组件中,我们使用了 v-bind 或者简写的 : 语法将 parentMessage 数据传递给了 ChildComponent 的 message prop。这样,parentMessage 的值就会被传递到 ChildComponent 中,并在子组件中使用。

<!-- ParentComponent.vue -->
<template>
  <div>
    <h1>父组件</h1>
    <ChildComponent :message="parentMessage" />
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  data() {
    return {
      parentMessage: '这是来自父组件的消息'
    };
  }
};
</script>

3.效果

为了便于在页面上展示,我们在App.vue中注册ParentComponent为局部组件:

<!-- App.vue -->
<template>
  <div id="app">
    <!-- 使用全局组件 -->
    <MyGlobalComponent></MyGlobalComponent>
    <!-- 使用局部组件 -->
    <MyLocalComponent></MyLocalComponent>
    <HelloWorld />
    <ParentComponent></ParentComponent>
  </div>
</template>

<script>
// 引入并注册局部组件
import HelloWorld from './components/HelloWorld.vue';
import MyLocalComponent from './components/MyLocalComponent.vue';
import ParentComponent from './components/ParentComponent.vue';

export default {
  name: 'App',
  components: {
    HelloWorld,
    MyLocalComponent,
    ParentComponent
  }
};
</script>

  • 效果:

vue3注册了ui组件全局怎么调用,前端,vue.js,javascript,前端文章来源地址https://www.toymoban.com/news/detail-802612.html

到了这里,关于两周掌握Vue3(三):全局组件、局部组件、Props的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • vue3全局注册组件

    vue3全局注册组件

    我们在封装组件的时候一般情况下都是在 components 文件夹下写自己的组件,然后再 views 下写对应的页面然后引入自己封装的组件,比如这样: views下的chooseArea的index.vue想要引入components下的chooseArea-src-index.vue就得这样写: 这只是个引入组件的例子,也就是说 每当我们在页面

    2024年02月12日
    浏览(11)
  • vue3中批量全局注册组件

    vue3中批量全局注册组件

    学习的时候顺便记录一下,用于个人学习使用vite+vue3+ts,如果想直接看批量注册全局组件的,看文章目录,直接点目录跳转即可 在vue中,我们在main.ts引入的全局注册的组件是可以不需要import导入而直接使用的。使用的时候是自己全局注册组件时的名称,而不是组件名。如下

    2024年02月04日
    浏览(12)
  • 小程序——局部组件与全局组件

    目录 前言 二、引用组件 1.局部引用 2.全局引用 3.全局引用 VS 局部引用 三、自定义组件 - 样式 1. 组件样式隔离 2. 组件样式隔离的注意点 3.修改组件的样式隔离选项

    2024年02月12日
    浏览(9)
  • Vue3+element-ui + TS封装全局分页组件

    本文介绍了如何使用Vue3、element-ui和TypeScript封装一个全局分页组件。 在开始之前,你需要安装以下环境: Vue3 element-ui TypeScript 这个分页组件提供以下功能: 支持自定义每页显示条数 支持自定义跳转到指定页码 支持显示总页数和总条数 支持自定义样式 分页组件结构 分页组

    2024年02月12日
    浏览(14)
  • 整体认识和路由配置、基础数据渲染、热榜区域实现、图片预览组件封装、认识SKU组件、通用组件统一注册全局(详情页)【Vue3】

    整体认识和路由配置、基础数据渲染、热榜区域实现、图片预览组件封装、认识SKU组件、通用组件统一注册全局(详情页)【Vue3】

    整体业务认识 路由配置 准备组件模板 配置路由 绑定模板测试跳转 封装接口 获取数据渲染模版 思考:渲染模版时遇到对象的多层属性访问可能出现什么问题? 模块实现整体分析 结论:两块热榜相比, 结构一致,标题title和列表内容不同 渲染基础热榜数据 1- 准备模版 2- 封

    2024年02月15日
    浏览(18)
  • uni-app:vue3 + uni-app 在微信小程序中无法使用app.component全局注册组件

    按上文中的代码执行后,会发现在微信小程序开发中全局注册的组件是无法显示的,这是uniapp的一个未解决bug, 在uniapp中出了可以通过vue实例的component方法注册全局组件外,uniapp支持另一种全局注册的方式,就是通过 easycom 扫描注册,步骤如下 easycom 的扫描流程是:通过代码

    2024年02月16日
    浏览(54)
  • Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

    Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

    npm i element-ui -S 在 main.js 中写入以下内容: 以上代码便完成了 Element 的引入。需要注意的是,样式文件需要单独引入。 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。 首先,安装 babel-plugin-component: npm install babel-plugin-component -D 然后,将

    2024年01月23日
    浏览(12)
  • Vue 全组件 局部组件

    Vue 全组件 局部组件

    一、组件定义和使用 定义 template     div         h1This is a global component/h1     /div /template script lang=\\\"ts\\\" /script style/style   导入 全局组件在main.ts(Vue + TS的项目)引入, 或者在main.js(Vue + JS的项目)引入 import { createApp } from \\\'vue\\\' import App from \\\'./App.vue\\\' import router from \\\'./router\\\' imp

    2024年02月20日
    浏览(15)
  • vite 引入局部组件 必须带.vue

    vite 引入局部组件 必须带.vue

    11:03:47 AM [vite] Internal server error: Failed to resolve import “./components/layoutsHeader” from “src/views/layouts/layouts.vue”. Does the file exist? 在这里插入图片描述

    2024年02月17日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包