项目经验分享|openGauss 刘昱娴:对未知葆有好奇与坚持

news2024/11/29 2:43:23

开源之夏

项目经验分享


2023 #02





8dc5247ee29ba9c96b27cf03982a2d50.jpeg

38395314518a2c3016fb7d397a2de602.jpeg

# 项目基本信息

项目名称:分页器组件封装

项目导师:王杏

项目简述与产出要求:分页器组件封装

1. 完成分页器组件封装;支持移动端和pc端

2. 适配Chrome、Safari、Firefox、Edge 等主流浏览器

3. 提供组件API文档

项目链接: https://summer-ospp.ac.cn/org/prodetail/23c9e0535


# 项目开发情况

1. 项目描述

在如今的应用场景下,往往面对需要处理大量数据的情况,将所有数据一次性加载到前端进行展示不仅会占用大量的内存和网络资源,还会导致页面加载缓慢,因而实现分页器组件的封装具有现实意义。

分页器的作用是将数据分为多个页面或数据块,每次只加载当前页面或数据块的数据从而提高页面加载速度和用户体验,其意义在于实现数据的分页展示和导航。

8befd93de7b21be1735d7714c70ca8df.jpeg

2. 项目实现思路

首先需要进行分页器组件的结构化设计,将组件拆分为前后按钮(prev、next)、页码列表(pager)、每页容量(sizes)、总数据量(total)、跳转(jumper)等,包括增加slot插槽使得用户可以自定义内容展示。

组件拆分:

a8b5d1dd2d42da4c0f04cf4da7943482.jpeg

随后进行props参数的设计。props涉及当前页、数据总量、每页容量、组件布局、页码列表长度等关键参数在父子组件间的传递,同时可在不同上下文中使用,提升组件的可复用性。

c03793024d5115db3744f260195e287a.jpeg

接下来进行分页核心逻辑的实现,包括依据传递参数计算出总页数、页码的前移后移,跳转到指定页码,页码列表内置的快速前移后移等事件。

在父子组件的通信过程,主要借助emit自定义事件触发。

bbb595d1d5e344844a633d9688ccc28c.jpeg

页码展示列表(pager)是分页器的核心部分。

9afc6980bebb1c79ebd396471ac6291e.jpeg

这里负责呈现分页器的主要界面元素,处理用户的交互事件,并根据当前页码和状态设置不同的样式。pager处理了用户的点击事件,确保用户可以正确地导航到不同的页面,并触发自定义事件以通知父组件进行页面更新,正确地展示变化后的页码列表。比如当用户点击“6”时,依次展示‘1’快速前移按钮‘4 5 6 7 8’快速后移按钮‘50’。

基础 功能实现后,需要对参数进行 合法性校验 以及 边界测试
合法性校验:
  • 是否传递total和pageCount等关键参数
  • 是否存在对当前页码、每页容量的事件监视器
  • 传递参数的数据类型是否正确等

边界测试:

  • 当前页码应在1~pageCount之间
  • jumper组件输入值为number类型且为非负数,并进行数值校验
  • sizes组件的value检测非空值,当oldValue与newValue不等时触发事件监听器
  • 页码列表的内置快速前后移应使得currentPage保持在正常范围内

最后是对分页器的样式设计:因分页器需要适配pc端和移动端,因而需要借助@media媒体查询,来依据不同分辨率动态呈现对应样式。对于在样式设计中用到的color、background-color、margin、padding、font-size等组件变量归纳到常量文件中,通过var绑定使用。



# 开源之夏个人随访

--项目经历--

OSPP请简单介绍一下自己。

刘昱娴大家好,我叫刘昱娴,来自江西抚州,是华中师范大学计算机科学与技术专业大三的一名本科生。

OSPP大二时你已经有了颇为丰富的项目经验,对于提高代码质量、问题解决和过程沟通,有什么可以分享的学习方法吗?

刘昱娴我从大一开始接触前端开发领域。当时是因为学校的社团招新宣讲,觉得前端引人入胜的网页特效很有趣,因此我决定加入木犀团队并成功通过了考核。在团队里,每周会有组会分享,同时也和团队内后端、产品、设计的同学们一起开发过小程序、网站等。在这个过程中,培养了我的团队协作能力。总结过去两年的学习经验,我认为要提升代码质量就离不开代码的规范性约束,比如需要考虑到产品的迭代,日常的可维护性等。同时多逛逛github、gitee这些网站,阅读一些高质量的代码,比如一些start数多的开源项目等。在团队协作过程中,熟练使用git工具可以显著提高对代码的管理能力和开发效率。

OSPP你是如何了解到并决定参与开源之夏活动的?在项目申请的过程中你都做过哪些准备?

刘昱娴我是从学长学姐的分享中了解到开源之夏的。当时大一也申请了开源之夏的项目但是很遗憾没有入选。于是大二的时候更加注重项目申请书的细节方面,比如说需要了解分页器的应用场景、通常如何做到分页展示海量数据、分页器组件的拆分(比如包括前后按钮、页码列表、每页容量等)、适配pc端和移动端等,同时参阅了Element UI的官方代码,熟悉项目仓库代码等,最终在项目申请书中产出自己的理解。

OSPP之前掌握的技术栈和项目经验对你此次开源之夏项目开发有什么帮助吗?

刘昱娴这次开源之夏的项目技术栈和我之前掌握的算是比较契合。比如html,css,typescript这些。但是之前常用的框架是react,项目技术栈是vue,所以也需要一些时间去学习vue框架。所幸在react的基础上,学习vue会相对轻松些。

99a8b2ac2d193c08e82de51aacb41025.jpeg

记录为赶项目进度通宵

--参与开源社区--

OSPP参与开源之夏之前是否参与过开源社区?参与开源之夏的过程中你对社区的认识有什么变化吗?

刘昱娴在此前并没有参加过开源社区。在参与开源之夏的过程中,我认为社区是一个充满活力和合作精神的环境,它为开发者提供了一个学习、分享和贡献的机会,也提供了开放创新的软件和技术解决方案,在相互促进的过程中进一步推动开源项目的发展。

OSPP在开发过程中,社区和导师为你提供了怎样的帮助?

刘昱娴在开发过程中,导师会提供解决问题的思路,并在代码调试过程中逐步引导性能优化。同时在代码审查中发现潜在问题,确保项目符合质量规范。在社区中可以获得学习资源的分享,同时也是一个问题解决的好地方,帮助提升开发技能。

OSPP对于自己日后在社区的发展有什么规划么?

刘昱娴希望能多参与社区讨论,钻研一些感兴趣的技术领域。同时寻找一些社区的开源项目,积极参与贡献。

--收获与寄语--

OSPP想对正在学习或想要从事技术工作的女生们说些什么呢?

刘昱娴:我觉得有句话说得好:“兴趣是最好的老师”。这一点对于男生女生来说都是同样适用的。在学习的过程中,始终葆有对未知的好奇并且能够坚持下去,那么结果一定不会让你失望。在项目开发经历中,会因卡bug苦苦求解良久才找到解决办法,会因项目的ddl迫近而焦急...但是当新功能开发出来了,产品上线了,会因此而欢呼雀跃,那种自豪感是无法言喻的。在技术领域,有时会面临性别刻板印象的困扰,但是坚信你的能力,不要害怕挑战,专注于自我提升,一样可以很出色

END 本文转自: 开源之夏OSPP官微

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

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

相关文章

分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测

分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测 目录 分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网络)分类预测预测效果基本介绍程序设计参考资料致谢 预测效果 基本介绍 分类预测 | MATLAB实现PCA-BiLSTM(主成分双向长短期记忆神经网…

系列三、Linux中安装Nginx

一、准备工作 1.1、确保gcc安装成功 如果没有安装gcc执行./configure将会报错。 # 使用如下指令安装gcc:两个都要安装 yum -y install gcc yum -y install gcc-c 1.2、下载nginx1.12.2 http://nginx.org/en/download.html 1.3、下载pcre-8.3.7.tar.gz 1.3.…

Qt应用程序连接达梦数据库-飞腾PC麒麟V10

目录 前言1 安装ODBC1.1 下载unixODBC源码1.2 编译安装1.4 测试 2 编译QODBC2.1 修改 qsqldriverbase.pri 文件2.2 修改 odbc.pro 文件2.3 编译并安装QODBC 3 Qt应用程序连接达梦数据库测试4 优化ODBC配置,方便程序部署4.1 修改pro文件,增加DESTDIR 变量…

C++ std::pair and std::list \ std::array

std::pair<第一个数据类型, 第二个数据类型> 变量名 例如&#xff1a; std::pair<int, string> myPair; myPair.first;拿到第一个int变量 myPair.second拿到第二个string变量 std::pair需要引入库#include "utility" std::make_pair() 功能制作一个…

STM32——串口通信(总结)

文章目录 串行通信概述&#xff1a;串行通信的基本原理和特点常见的串行通信标准和协议&#xff1a; 串口硬件接口&#xff1a;串口接口的特点包括&#xff1a;串口的物理接口和连接方式。串口引脚功能和作用。 串口通信参数&#xff1a;波特率&#xff08;Baud Rate&#xff0…

OJ练习第166题——课程表(拓扑排序问题)

课程表 力扣链接&#xff1a;207. 课程表 题目描述 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表…

source insight keil 中文乱码

1. 乱码的根本原因就是编码的方式太多了&#xff0c;你用这种编码&#xff0c;他用那种编码&#xff0c;就变成鸡同鸭讲了&#xff0c;对牛弹琴就要用牛语&#xff0c;如果全世界只有一种编码方式&#xff0c;就肯定不会有乱码问题&#xff0c;但这是不可能的。keil 设置编码格…

PyQt5安装以及使用

PyQt5安装以及使用 1 简介2 安装方法2.1 pip install PyQt52.2 pip install PyQt5‑5.15.9‑cp37‑cp37m‑win_amd64.whl 3 Qt相关工具介绍4 安装PyQt5-tools5 设置环境变量6 测试 1 简介 开发工具为PyCharm&#xff0c;Anaconda&#xff0c;因为Python安装相关包的方便性&…

sql:SQL优化知识点记录(十五)

&#xff08;1&#xff09;MySQL主从复制 我们这里配置一Windows上的MySql做主机&#xff0c;Linux上的MySql做从机&#xff0c;搭建一主一从 测试以下是否能够拼通&#xff1a;从Linux上&#xff1a;167&#xff0c;连接Windows的165 从Windows的165 连接Linux上&#xff1a;…

校园网免认证服务器大增加

这学期搞拐了&#xff0c;服务器整多了&#xff0c;结果没有几个人来消耗带宽&#xff0c;监控图片为证&#xff0c;网速快&#xff0c;线路多 线路展示 # 无为WIFI配置 # 欢迎使用无为WIFI破解软件 # 招收实力代理&#xff0c;定制独立软件&#xff0c;独立代理后台 # clie…

MicroStation中将二维对象投射到三维实体

在三维建模中&#xff0c;偶而会遇到需要将一个2D对象沿Z轴或指定方向投射到一个3D实体&#xff0c;在3D实体表面生成这个2D对象的投影对象。 需要使用的操作命令为&#xff1a; Stencil 2D Elements on 3D Geometry&#xff0c;位于可视化工作流、实用工具栏内。 操作时先后选…

基于Java+SpringBoot+Vue前后端分离火锅店管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——排列组合——排队

&#x1f41f; 排队问题常用方法有以下几种&#xff1a; &#xff08;1&#xff09;特殊元素优先法、特殊位置优先法&#xff1b; &#xff08;2&#xff09;剔除法&#xff1b; &#xff08;3&#xff09;相邻问题捆绑法&#xff1b; &#xff08;4&#xff09;不相邻问题插空…

从 BBR 失速到带宽探测

看一下 pacing 流失速的成因&#xff1a; 一段时间收不到 ack&#xff0c;丢了 ack 自时钟&#xff0c;cwnd 将耗尽&#xff0c;bbr 虽有 cwnd_gain(上图没有表现)&#xff0c;但在该 cwnd_gain 下不依赖 ack 持续坚持发送多久取决于 cwnd_gain 的数值。 bbr 失速的后果在于…

分类预测 | Matlab特征分类预测全家桶(BP/SVM/ELM/RF/LSTM/BiLSTM/GRU/CNN)

分类预测 | Matlab特征分类预测全家桶&#xff08;BP/SVM/ELM/RF/LSTM/BiLSTM/GRU/CNN&#xff09; 目录 分类预测 | Matlab特征分类预测全家桶&#xff08;BP/SVM/ELM/RF/LSTM/BiLSTM/GRU/CNN&#xff09;预测效果基本介绍程序设计参考资料致谢 预测效果 基本介绍 分类预测 | …

ResNet 09

一、发展 1989年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet。 1998年&#xff0c;Yann LeCun提出了一种用反向传导进行更新的卷积神经网络&#xff0c;称为LeNet-5 AlexNet是2012年ISLVRC 2012&#xff08;ImageNet Large Sca…

计算机组成与设计硬件软件接口学习1

计算机的算术运算 子字并行 &#xff08;大致浏览&#xff09;pdf 170页左右 浮点加法不满足结合律&#xff1a; 适用于整型数据类型的并行执行策略并不适用于浮点数据类型 &#xff0c;原因如上↑

TSN时间敏感网络

目录 时间敏感网络介绍 子协议介绍 时间同步 IEEE802.1AS 调度和流量整形 IEEE802.1Q IEEE802.1Qbv IEEE802.1cr IEEE802.1Qbu IEEE802.1Qch IEEE802.1Qav IEEE802.1Qcc 纠错机制与安全 IEEE802.1Qci IEEE802.1CB IEEE802.1Qca 参考 时间敏感网络介绍 TSN(Tim…

人大金仓分析型数据库备份和恢复(一)

目录 前言 备份和恢复概述 并行备份 非并行备份 需求和限制 前言 定期执行备份能确保在数据损坏或者系统失效发生时能恢复数据或者重建数据库系统。用户还可以使用备份从一个数据库系统迁移数据到另一个数据库系统。 备份和恢复概述 数据库支持并行和非并行的方法来备份和…

监控系统部署prometheus基本功能

wget -c https://github.com/prometheus/prometheus/releases/downloa d/v2.37.1/prometheus-2.37.1.linux-amd64.tar.gz下载必要的组件。 mkdir -p /opt/prometheus创建目录。 tar zxf prometheus-2.37.1.linux-amd64.tar.gz压缩文件解压至当前目录下&#xff0c;cp -far pr…