vue中封装组件实例

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

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

创建目录:


封装子组件:

<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>
      <img
        src="../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)并展示它。

父组件:

<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 子组件中,这体现了父子组件之间的数据传递。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值