vue中封装组件实例

news/2024/9/23 23:39:05/

本篇是一篇组件封装。因为要经常使用,特此封装并且记录下来,以供参考。

封装组件:封装组件是指将一段具有特定功能的Vue代码(包括模板、脚本和样式)封装成一个可复用的组件。这个组件可以作为一个独立的单元,在多个地方被引用和使用。封装组件的主要目的是为了代码的复用和可维护性。在封装组件时,我们通常会定义props(属性)来接收外部传入的数据,定义events(事件)来向外部发送数据,以及定义slots(插槽)来让外部可以自定义组件的某部分内容。

创建目录:


封装子组件:

javascript"><style scoped>
/* 顶部 */
.box {background-color: #f4f4f4;width: 100%;height: 500px;
}
.top {width: 100%;display: flex;justify-content: space-around;align-items: center;height: 40px;/* position: fixed;top: 0;right: 0; *//* text-align: center; */background-color: white;
}.button {width: 70px;display: flex;justify-content: space-between;align-items: center;background-color: white;border: 1px solid;border-radius: 20px;
}.backspacing {width: 20px;height: 20px;
}.null {width: 70px;
}
</style>
<template><!-- 顶部导航栏 --><div class="top"><button class="button"><img src="../assets/zuoz.png" alt="" class="backspacing" @click="BACK" /><span>|</span><imgsrc="../assets/home2.png"@click="homes"alt=""class="backspacing"/></button><div class="text">{{ text }}</div><div class="null"></div></div>
</template><script setup>
import { ref, computed, watch, reactive } from "vue";
import axios from "axios";
import { useRouter } from "vue-router";
import { useRoute } from "vue-router";
const props = defineProps(["text"]);const router = useRouter();
const route = useRoute();
// 返回我的页面
const BACK = () => {router.push({name: "Mine",});
};// 返回首页
const homes = () => {router.push({path: "/Home",});
};
</script>

在封装的组件当中,你可以把它所有的事件也都可以放进去,
定义了一个名为 text 的 prop,并在模板中使用 {{ text }} 来显示它,它可以接收外部传入的数据(通过 props)并展示它。

父组件:

javascript"><style  scoped>
</style><template><div><top text="收益"> </top></div>
</template><script setup>
import top from "../components/top.vue";
import { ref, computed, watch, reactive } from "vue";
import axios from "axios";
import { useRouter } from "vue-router";
import { useRoute } from "vue-router";
const router = useRouter();
const route = useRoute();
</script>

父组件中,导入了 top 组件,并在模板中使用了它。通过 text="收益" 向子组件传递了一个 prop 值。这就是父子组件之间传值的一个例子。
 

总结

  • 封装组件top.vue 是一个封装的组件,因为它可以接收外部数据(通过 props)并展示它。
  • 父子组件之间传值:在父组件中,通过 text prop 将数据传递到 top 子组件中,这体现了父子组件之间的数据传递。


http://www.ppmy.cn/news/1464189.html

相关文章

py黑帽子学习笔记_scapy

简介 代码简洁&#xff1a;相比于前两个博客总结&#xff0c;很多socket操作&#xff0c;如果使用scapy仅需几行代码即可实现 获取邮箱身份凭证 编写基础嗅探器&#xff0c;脚本可显示任何收到的一个包的详细情况 直接运行 尝试监听邮件收发&#xff0c;监听指定端口&#x…

钡铼PLC集成BL121PO协议网关优化电子制造产线的生产效率

PLC转OPC UA协议转换网关BL121PO在电子制造产线中的优化应用&#xff0c;可以显著提高生产效率&#xff0c;促进生产线的智能化和信息化发展。本文将从以下几个方面进行阐述&#xff1a; 提高设备间通信效率&#xff1a;PLC转OPC UA协议转换网关BL121PO通过高效的协议转换&…

如何确保大模型 RAG 生成的信息是基于可靠的数据源?

在不断发展的人工智能 (AI) 领域中&#xff0c;检索增强生成 (RAG) 已成为一种强大的技术。 RAG 弥合了大型语言模型 (LLM) 与外部知识源之间的差距&#xff0c;使 AI 系统能够提供更全面和信息丰富的响应。然而&#xff0c;一个关键因素有时会缺失——透明性。 我们如何能够…

快乐数-力扣

使用一个set来存储遇到的每个数&#xff0c;如果遇到的数在set中&#xff0c;那么说明这个数不是快乐数&#xff0c;否则一直循环下去&#xff0c;直到n 1结束循环&#xff0c;表示这个数是个快乐数。 需要注意的是&#xff0c;给定一个数 n, 怎样对这个数 n 进行每一位求和。…

基于docxtpl的模板生成Word

docxtpl是一个用于生成Microsoft Word文档的模板引擎库。它结合了docx模块和Jinja2模板引擎&#xff0c;使用户能够使用Microsoft Word模板文件并在其中填充动态数据。这个库提供了一种方便的方式来生成个性化的Word文档&#xff0c;并支持条件语句、循环语句和变量等控制结构&…

Tasker+SendSilentMail实现钉钉自动打卡

Tasker 允许用户根据自定义的“配置文件”(Profiles)&#xff0c;在特定的“背景”(Contexts)下&#xff0c;执行指定的“任务”(Tasks)。以下是关于Tasker的详细介绍&#xff1a; 强大的自定义能力&#xff1a;用户可以根据自己的需求&#xff0c;创建各种配置文件和任务&…

C 实现 WebSocket 服务器

目录 一、概述 二、基本特征 三、使用案例 1、客户端 HTML 代码 2、服务端 C 代码 四、运行结果 一、概述 实现 WebSocket 服务器主要参考 RFC 协议。链接如下&#xff1a; RFC 6455: The WebSocket Protocol (rfc-editor.org)https://www.rfc-editor.org/rfc/rfc6455.h…

Vue从入门到实战Day07

一、vuex概述 目标&#xff1a;明确vuex是什么&#xff0c;应用场景&#xff0c;优势 1. 是什么&#xff1a; vuex是一个vue的状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;vuex是一个插件&#xff0c;可以帮助我们管理vue通用的数据&#xff08;多组件共享的…