当前位置: 首页 > news >正文

Vue3 从入门到放弃 (第三篇.组件的使用)

上一篇讲到了,Vue3的创建第一个Web应用(Vue3 从入门到放弃 (第二篇.创建第一个Web应用)_Meta.Qing的博客-CSDN博客

今天组件的基础与使用,并且使用实际例子,来更好的展示效果.

首先,什么是组件(Component)?

组件(Component)是Vue中的一个重要概念,是一个可以重复使用的Vue实例,它拥有独一无二的组件名称,它可以扩展HTML元素,以组件名称的方式作为自定义的HTML标签。

组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:

这和我们嵌套 HTML 元素的方式类似,Vue 实现了自己的组件模型,使我们可以在每个组件内封装自定义内容与逻辑。

定义一个组件

我们继续接着上节文章,在工程里 src/components目录下新建一个MetaHeader.vue的文件

 当使用构建步骤时,我们一般会将 Vue 组件定义在一个单独的 .vue 文件中,这被叫做单文件组件 (简称 SFC):

然后,我们再MetaHeader.vue添加以下代码:

<script setup>
</script>

<template>
<!-- 定义一个头部组件 -->
  <div class="meta-header">
    <!-- 左侧logo -->
    <div class="meta-header-logo">Meta.Qing LOGO</div>
    <nav>
        <!-- 右侧导航栏 -->
      <a href="/HTML/">HTML</a> | <a href="/css/">CSS</a> |
      <a href="/JavaScript/">JavaScript</a> | <a href="/jQuery/">jQuery</a> |
      <a href="/Vue3/">Vue3</a> | <a href="/React/">React</a> |
      <a href="/Angular/">Angular</a>
    </nav>
  </div>
</template>

<style scoped>
/* 弹性盒子方式来布局 */
.meta-header {
  display: flex;
  width: 100%;
  justify-content: space-between;
  background: #1fd6e766;
  padding: 10px;
}
.meta-header-logo {
  font-weight: bold;
  color: rgba(28, 29, 31, 0.804);
}
</style>

使用组件

要使用一个子组件,我们需要在父组件中导入它。

父组件 src/views/Home/HomeIndex.vue

<script setup>
// 导入头部组件
import MetaHeader from '../../components/MetaHeader.vue';
</script>

<template>
  <!-- 使用头部组件,可以重复调用 -->
  <meta-header></meta-header>
  <h1>我们第一个vue3应用</h1>
</template>



提示:这里讲的是局部导入组件,后续补充如何全局导入组件

通过 <script setup>,导入的组件都在模板中直接可用.

然后我们运行

npm run dev

浏览器打开:http://127.0.0.1:5173/#/

 至此,组件简单使用大功告成啦.

相关文章:

  • 跑通DIMP(Windows10)
  • 02-Ajax入门
  • Linux系统中Qt安装
  • RabbitMQ消息丢失的场景,如何保证消息不丢失?(详细讲解,一文看懂)
  • 界面组件DevExpress MAUI Xamarin v22.1 - 全新的项目模板
  • c++ map取值的find、[]、at方法特性对比
  • python分布式计算multiprocessing包
  • C++ 10.3 关联容器map定义以及value_type、key_type、mapped_type
  • 不锈钢酸洗液酸回收工艺及方案
  • 笑话大全查询易语言代码
  • 电竞消息查询易语言代码
  • TCP确保可靠的机制——重传,滑动窗口,拥塞窗口,流量控制,延迟确认
  • springboot基于WEB的高校文档打印系统毕业设计源码101004
  • 【JAVASE】类的五大成分
  • 执行maven报错Unrecognised tag ‘profiles‘
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • js写一个简单的选项卡
  • PHP的Ev教程三(Periodic watcher)
  • Python - 闭包Closure
  • SpringBoot几种定时任务的实现方式
  • SpriteKit 技巧之添加背景图片
  • Vue 2.3、2.4 知识点小结
  • 阿里云购买磁盘后挂载
  • 第十八天-企业应用架构模式-基本模式
  • 回流、重绘及其优化
  • 解析带emoji和链接的聊天系统消息
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何在GitHub上创建个人博客
  • 如何正确配置 Ubuntu 14.04 服务器?
  • MyCAT水平分库
  • 阿里云API、SDK和CLI应用实践方案
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #AngularJS#$sce.trustAsResourceUrl
  • ${ }的特别功能
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (LeetCode 49)Anagrams
  • (Oracle)SQL优化技巧(一):分页查询
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十五)使用Nexus创建Maven私服
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)使用VMware vSphere标准交换机设置网络连接
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Project Open Day(2011.11.13)
  • .NET 服务 ServiceController
  • .NET 指南:抽象化实现的基类
  • .NET中winform传递参数至Url并获得返回值或文件
  • @EnableWebMvc介绍和使用详细demo
  • [Android Studio] 开发Java 程序
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)