简单聊一聊组件封装

news2025/1/16 21:39:35

封装一个思维导图组件

最近封装了一个简单的思维导图组件,在此简单记录一下心里历程

组件样式

在这里插入图片描述

组件结构设计

节点之间的线分成三部分,分别是竖线左边的横线A、竖线B、竖线右边的横线C,所以一个节点可以包含以下几个元素:

  • 横线C,根节点不展示
  • 节点内容,提供插槽以满足自定义节点内容的样式
  • 收起、展开子节点的按钮,叶子节点不展示
  • 横线A,叶子节点不展示
  • 竖线B,叶子节点不展示

然后使用递归组件即可实现思维导图

数据结构

使用递归组件,所以使用树形数据结构。另外需要考虑数据结构的字段,在此不做多言

实现过程中遇到的难点和解决方案

  • 计算竖线的高度和位置

竖线的高度 = 最后一个子节点中横线C的offsetTop + 最后一个子节点的offsetTop - 第一个子节点的横线C的offsetTop
竖线的top = 第一个子节点中横线C的offsetTop

  • 递归组件中使用插槽

使用如下写法

<template slot-scope="{ nodeData }">
  <slot v-bind:nodeData="nodeData"></slot>
</template>

所以设计、封装一个组件大致可以分为以下几步:

  • 需求分析
  • 组件结构设计
  • 组件数据结构设计

然后组件的入参、出参、事件、方法、插槽等等结合实际业务,也就水到渠成了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/198028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VBA提高篇_18 VBA代码录制优化Select(tion)及表格合并Merge(cells()/Rows()/Columns()

文章目录1. Cells(1,1)2. Rows(Str)和Columns(Str)3. VBA合并单元格3.1 Range.MergeCells属性:3.2 Range.Merge/UnMerage属性:3.3 Range.Merge(参数True/False)3.4 操作合并/取消合并单元格的两种方法4. Select / Selection 和 录制宏的代码优化4.1 Select / Selection4.2 录制…

anconda的pip下载包出现的问题

问题一: 在anconda里面如何创建新的python环境(也就是更换新的python版本) 1.先打开anconda软件,创建需要的环境 2. 环境创建好之后,去pycharm里面进行配置解释器 3. 这样就可以用了 问题二:pip的安装软件时出现包找不到的问题? 注意:因为我们刚刚创建了一个python环境,等…

Python基于已知的分幅条带号筛选出对应遥感影像文件的方法

本文介绍基于Python语言&#xff0c;结合已知研究区域中所覆盖的全部遥感影像的分幅条带号&#xff0c;从大量的遥感影像文件中筛选落在这一研究区域中的遥感影像文件的方法。 首先&#xff0c;先来明确一下本文所需实现的需求。现已知一个研究区域&#xff08;四川省&#xff…

【C++】C++入门 函数重载

前言 自然语言中&#xff0c;一个词可以有多重含义&#xff0c;人们可以通过上下文来判断该词真实的含义&#xff0c;即该词被重载了。 函数重载一、函数重载定义二、函数重载的条件1. 参数类型不同2. 参数个数不同3. 参数类型顺序不同三、函数重载的原理--名字修饰(name Mangl…

怎么把网页变成灰色?怎么让头像或某一部分不变灰色?filter/backdrop-filter/mix-blend-mode/svg/grayscale(1)

在国家公祭日&#xff0c;我们哀悼沉思&#xff0c;势要勿忘国耻振兴中华&#xff1b;在国家重要人物逝世后&#xff0c;举国哀悼&#xff1b;这些时段很多网站都会积极呼应&#xff0c;给与自己的网页设置成灰色&#xff1b;那给网页设置成灰色是经过怎样的设置来实现的呢&…

利用pandas_udf加速机器学习任务

note pandas udf和python udf区别&#xff1a;前者向量化是在不同partition上处理pandas_udf使用panda API来处理分布式数据集&#xff0c;而toPandas()将分布式数据集转换为本地数据&#xff0c;然后使用pandas进行处理&#xff0c;如果Pyspark的dataframe非常大&#xff0c;…

快速排序和归并排序哪个快?

两个排序的基本思想都是分治&#xff08;分而治之&#xff09;,实现一般都使用递归实现。1.快速排序双边指针&#xff08;交换法&#xff09;&#xff1a;记录分界值 &#xff0c;创建左右指针&#xff08;记录下标&#xff09;。以第一个元素为分界值&#xff0c;先从右向左找…

C语言指针变量作为函数参数

在C语言中&#xff0c;函数的参数不仅可以是整数、小数、字符等具体的数据&#xff0c;还可以是指向它们的指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部&#xff0c;使得在函数内部可以操作函数外部的数据&#xff0c;并且这些数据不会随着函数的结束而被销毁…

ocelot的单节点解决方案

ocelot的问题前面我们解决了consul的单节点的集群扩建。这里讨论如果在多客户端访问时&#xff0c;单网关也会有瓶颈。如果单台挂掉&#xff0c;那么也会麻烦&#xff0c;所以根据项目需要解决问题。ocelot多节点部署最简单的粗暴解决&#xff0c;多部署几台网关。但是我们需要…

mac环境和windows环境下GeoServer如何安装部署

geoserver是从事GIS行业都应当了解的一个gis服务器。 所以说学会geoserver是一个非常必要的事情。那么这篇文章呢我就带着大家来一起学习如何在Mac机器上和windows机器上安装并部署Geoserver。 首先不管是哪个环境我们都需要去官网上先下载安装包。 第一步我们要去geoserver的…

【计算机组成原理】y = a * b + c 的执行具体流程

文章目录1.2.2 认识各个硬件部件1. 主存储器的基本组成2. 运算器的基本组成3. 控制器的基本组成4. 计算机的工作流程1.2.2 认识各个硬件部件 1. 主存储器的基本组成 存储体&#xff1a;存放数据和指令地址寄存器&#xff1a;用来存放读取存储体数据时存放的具体位置数据寄存器…

12、字符(串)输入、输出

目录 一、字符数据输入&#xff0f;输出 1. 字符数据输入 2. 字符数据输出 二、字符串输入&#xff0f;输出 1. 字符串输入函数 2. 字符串输出函数 一、字符数据输入&#xff0f;输出 1. 字符数据输入 字符数据输入使用的是getchar函数&#xff0c;其作用是从终端&…

前端遇到的问题

inputs-outputs https://angular.cn/guide/inputs-outputs 用于父组件与子组件间的值传递 在项目中引入核心组件 父组件在其html界面绑定属性 在子组件里通过Input传递值 具体里: 使用默认规则数组绑定固定值(比如id)的错误 这里两个ts文件之间传值,采用了一个get函数,…

微信小程序 view组件的基本使用

1.view基本理论 能看图就尽量减少文字提示&#xff0c;从图书可以看出ABC是纵向排列的。 为什么会纵向排列而不是横向排列&#xff0c;那是因为view是块元素&#xff0c;能占满整一行。 怎么让view块元素横向并排呢&#xff1f; 向上图一样横向排列&#xff0c;接下来教学从0…

Kerberos协议与认证数据包分析

Kerberos协议 Kerberos是一种在开放的非安全网络中认证并识别用户身份信息的方法, 它旨使用密钥加密技术为客户端/服务端应用程序提供强身份认证。 目前主流的Kerberos版本是2005年的RFC4120标准的Kerberos v5, Windows、Linux和MacOs均支持Kerberos协议。Kerberos基础 Kerbe…

Quartz入门看这一篇文章就够了

第一章 Quartz简介 第一节 Quartz是什么? 1Quartz [kwɔːts]是一个完全由Java编写的开源的作业调度框架第二节 Quartz可以用来做什么? 比如说买火车票下单之30分钟之后,查看是否付款付款完成之后,在乘车日期的时候是否乘车或者每个月1号扣房贷每个月20号自动还信用卡想定时…

为什么要使用采购管理软件 采购管理软件推荐

在企业发展道路上&#xff0c;采购部门是一个非常重要的组织&#xff0c;它会直接影响到企业的经济效益。企业在采购活动中&#xff0c;如果还是采用传统线下的采购方式&#xff0c;那么很容易导致采购信息不集中&#xff0c;效率低&#xff0c;出错率高&#xff0c;最终损害企…

爱情呼叫转移-深度广度遍历合集

1.这件事是特殊的&#xff0c;还是普遍的&#xff1f; 工作中常常会遇到各种各样的问题&#xff0c;不管黑猫白猫&#xff0c;抓到老鼠就是好猫。哪只猫好&#xff0c;往往需要对比分析。 如何做数据对比&#xff0c;需要加入哪些数据来分析&#xff0c;在哪里进行数据对比&am…

查找 二分查找 (终极巩固)

二分条件&#xff1a; 1) 序列有序 2&#xff09;支持随机访问 二分思想&#xff1a; 大体思想是二分之后如果目标值在左侧&#xff0c;则中间包括右边区间所有pass掉 right mid - 1; 目标在右侧&#xff0c;则中间包括左边所有pass left mid 1; 注意点 left < rig…

Python Fiddler抓包工具教学,获取公众号(pc客户端)数据

前言 今天来教大家如何使用Fiddler抓包工具&#xff0c;获取公众号&#xff08;PC客户端&#xff09;的数据。 Fiddler是位于客户端和服务器端的HTTP代理&#xff0c;是目前最常用的http抓包工具之一。 开发环境 python 3.8 运行代码pycharm 2021.2 辅助敲代码requests 第三方…