首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

漫谈 React 组件开发(二):组件最佳实践

那么现在就面临一个选择: 一是选择 React 生态中已有的组件,例如 antDesign、Material-UI 等比较成熟的组件; 二是团队再开发一套属于自己的组件。...本文我们就来聊一聊如何开发一套优秀的 React 组件以及一套完整组件的构成。 一、选择开源?还是自己造轮子?...二、组件构成 构建一个完整的组件需要考虑: 组件设计思路 组件代码规范 组件开发流程 组件测试 组件维护(包括 PR / issue 管理、发包、文档) 1....组件开发流程 约定好组件的设计思路和代码规范以后,接下来我们就可以参与开发组件了,组件的基本开发流程,包括以下几点: 组件初始化 组件 Coding 组件 Demo Zent 里面有一个组件初始化命令...组件测试 js 单元测试框架有很多,chai、jest、mocha、karma 等等,Zent 组件使用的是 jest + enzyme 的组合,下面来看一个例子: // Button UI test

1.6K30
您找到你想要的搜索结果了吗?
是的
没有找到

原生JS实现组件开发

自定义标签 自定义标签通过扩展一个HTMLElement或HTMLElement的子类来定义一个新的html标签,是通过原生js实现的组件化。...,但和复杂的组件相比是完全不够用的,它应该配合另一个特性Shadow DOM一起使用 Shadow DOM能封闭内部,让js和css都无法选择到内部元素(只是无法选择,还是会显示到页面上),里面可以定义.../index.js" type="module"> 复制代码 const div = document.querySelector("div"); const shadow = div.attachShadow.../index.js" type="module"> 复制代码 class RedH1 extends HTMLElement { text; constructor...defineCustomElement来创建一个自定义标签的构造函数,它接收defineComponent相同的参数,返回的类需要使用window.customElements.define来注册,因为是使用原生的方法注册,这样的组件不需要挂载为全局组件就能全局使用

3.5K52

【实战】Vue.js 图标选择组件开发

image.png 设置图标不难,方案就是字体图标,可供使用的图标也有很多,比如阿里巴巴的 Iconfont,以及 Fontaswsome 等,问题在于如何优雅的提供几百个图标供用户选择,而不需要开发去一个一个的写标签...字体图标 Fontawesome 方案 我们使用字体图标的方式,一般是一个 这样的标签,平常开发中用一些图标都是用到一个写一个,展示...在组件平级新建一个 index.js 文件 image.png import IconsCompontent from '....,此名称决定了如何使用组件,这里是ui-icons,那么使用的时候就是: 接着在项目 components 根目录新建 index.js,这里是所有组件的集合 image.png...原文链接:https://blog.zhangbing.site/2018/12/01/Vue-js-图标选择组件实践/ 作者简介:做工程不做码农(微信公众号同名),Web前端工程师,7年开发经验,坐标杭州

3.2K10

前端反卷计划-组件-06-Icon组件开发

今天开始分享如何从0搭建UI组件。这也是前端反卷计划中的一项。在接下来的日子,我会持续分享前端反卷计划中的每个知识点。以下是前端反卷计划的内容:目前这些内容持续更新到了我的 学习文档 中。...1.安装fortawesomeicon组件开发借助第三方开源:fortawesome 1.安装fortawesome第三方 npm i @fortawesome/fontawesome-svg-core...@fortawesome/free-solid-svg-icons @fortawesome/react-fontawesome --save2.新建Icon目录2.新建Icon目录,同其他组件 3...,看下效果将theme换成primary看下效果 系列篇前端反卷计划-组件-01-环境搭建前端反卷计划...-组件-02-storybook前端反卷计划-组件-03-组件样式前端反卷计划-组件-04-Button组件开发# 前端反卷计划-组件-05-Menu组件开发持续更新目前这些内容持续更新到了我的

20510

前端反卷计划-组件-05-Menu组件开发

今天开始分享如何从0搭建UI组件。这也是前端反卷计划中的一项。在接下来的日子,我会持续分享前端反卷计划中的每个知识点。以下是前端反卷计划的内容:目前这些内容持续更新到了我的 学习文档 中。...index 索引 number disabled是否是disabled状态booleanFALSESubMenu参数 说明类型 默认值title名称string5.4 开发...这样就不用在menu item上传index了 1 125.5.8 SubMenu基础开发原理和...ccc ddd 系列篇前端反卷计划-组件...-01-环境搭建前端反卷计划-组件-02-storybook前端反卷计划-组件-03-组件样式前端反卷计划-组件-04-Button组件开发持续更新目前这些内容持续更新到了我的 学习文档 中。

15710

前端反卷计划-组件-04-Button组件开发

今天开始分享如何从0搭建UI组件。这也是前端反卷计划中的一项。在接下来的日子,我会持续分享前端反卷计划中的每个知识点。以下是前端反卷计划的内容:目前这些内容持续更新到了我的 学习文档 中。...FALSE href 点击跳转的地址,指定此属性 button 的行为和 a 链接一致string 4.4 开发创建...ButtonProps = Partial/** * 页面中最常用的的按钮元素,适合于完成特定的交互 * ### 引用方法 * * ~~~js...fireEvent.click(element) expect(disabledProps.onClick).not.toHaveBeenCalled() })})系列篇前端反卷计划-组件...-01-环境搭建前端反卷计划-组件-02-storybook前端反卷计划-组件-03-组件样式持续更新目前这些内容持续更新到了我的 学习文档 中。

26210

Vue组件 | 如何从0到1开发一个开源组件

一年以前作者对于如何开发一个组件一无所知,对于开源项目也是了解甚少,抱着什么不会学什么的态度,作者拉上了两位好友开始了Varlet的开发。...Design System 首先,作者不建议在没有设计系统的情况下进行组件开发,因为自己拍脑门想出来的设计总是会那么的不合理。如果企业有自己的能力设计一个风格或是设计系统那是最好的选择。...相关工具 构建一个组件,需要的工具又广又杂,我们考虑到一个成熟的组件至少应该满足以下最基本的开发要求 开发环境,你得起个服务去调试代码吧 支持按需引入,应该没有人愿意全量导入组件组件编译,生成...但是对于一个新的项目,我认为Vite应该是第一选择,因为它真的非常非常优秀 组件编译器 在有了开发环境之后,我们还需要把我们的组件代码导出成umd和esm模块来提供给用户使用,这里我们讨论之后没有使用...组件原型设计与重构 当我们开始面向具体的场景进行组件开发的时候,我们会各自阐述自己对于这个组件的理解,并且由负责这个组件的人牵头去做原型开发,也就是草稿,因为talk is cheap,所以需要定一个大概的雏型并做具体实现

66901

06Vue.js快速入门-Vue组件开发

组件其实就是一个拥有样式、动画、js逻辑、HTML结构的综合块。前端组件化确实让大的前端团队更高效的开发前端项目。而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色。...尤其是她单文件组件开发的方式更是非常方便,而且第三方工具支持也非常丰富,社区也非常活跃,第三方组件也呈井喷之势。当然学习和使用Vue的组件也是我们的最重要的目标。 6.1....meta charset="UTF-8"> Vue入门之extend全局方法 <script src="https://unpkg.com/vue/dist/vue.<em>js</em>...单文件<em>组件</em>的使用方式介绍 通过上面我们定义<em>组件</em>的方式,就已经感觉很不爽了,尤其是模板的定义,而且样式怎么处理也没有很好的进行规整。 Vue可以通过Webpack等第三方工具实现单文件的<em>开发</em>的方式。...<em>组件</em>化确实让前端模块化<em>开发</em>更加容易实现, Vue的单文件<em>开发</em><em>组件</em>的方式也是Vue的一大创新,也发非常好用。

1.1K50

想做前端开发?推荐几个必备珍品组件

至于为什么要用组件我想应该是体验了,用户使用体验以及开发人员的开发体验,用户在页面上的交互都是通过组件,一个颜值高的组件可以第一眼吸引用户去点击,这就是用户体验,开发体验更不用说,组件就是同种类型不同交互的封装...,是用组件可以让我们更专注的针对业务的开发和产品的交互。...下面我就给大家推荐从 HelloGitHub 往期月刊(100+JS项目)中筛选出来的 5 个常用且流行的企业级组件。...组件数量上基本覆盖了中台日常需要使用的组件 代码层面:文件结构清晰,组件的定义简洁明了,适合学习 生态:mint-ui[3] (Mobile UI elements for Vue.js) element-angular...一次编写多端运行,提供了 H5、小程序、RN 组件。目前最新版本在小程序以及 H5 RN 开发体验也是十分好的。

2.7K50

自定义vue.js全局组件(仿MintUI)

在项目开发中,我们总会引入很多别人封装好的组件模板,使用时仅仅三步,第一步就是install,第二步在main.js里面引入,第三步Vue.use这个组件。...例如MintUI,试想我们是否可以自己仿照MintUI写一个自己的组件同样让别人使用,设置成全局组件呢?下面就依照MintUI编写自己的组件。 1. 创建组件模板 ?...image 如上图,创建了两个组件模板Loading和MyButton,组件模板代码以Loading为 : //Loading组件模板 <transition name...在组件加载入口的index.js文件里面添加install方法 import LoadingComponent from './Loading' import myButton from '....3. webpack首先会加载main.js,所以在main的js里面引入 import MintUI from 'mint-ui' Vue.use(MintUI) import {Loading,MyButton

1.5K20

开发一套个人vue组件

市面上有各种各样的vue组件,element,vux,iview等等,她们已经足够好了,但是还是要自己尝试着去写一些公共组,只是为了让自己更清晰的了解到整个组件开发流程,用这些组件的时候更加方便...pop 进度条-progress 以上组件样式参考饿了么UI,组件方法有参考饿了么的地方,也有一些按照自己的思路写的组件,并没有饿了么那么高的可配置性,但是够用 开发流程 1.页面文档 使用vuePress...开发,她能够很好的嵌入vue组件代码,使得文档能够准确的加载并预览组件,vuePress怎么使用可以看上一篇文章 VuePress搭建永久文档/博客网站 2.项目配置 package.json文件配置..." //入口文件,根据自己打包文件进行配置 webpack.base.conf.js 文件配置 //webpack.base.conf.js 文件配置 entry: { //配置开发、生产入口文件...,在开发环境时可以实时预览组件 app: process.env.NODE_ENV === 'production' ?

1.6K40

C++ Qt开发:QSqlDatabase数据组件

Qt 是一个跨平台C++图形界面开发,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QSqlDatabase...Qt SQL模块是Qt框架的一部分,它提供了一组类和函数,用于在Qt应用程序中进行数据操作。这个模块的目标是简化数据访问和操作,并提供一致的接口,使得开发者可以方便地与不同数据系统进行交互。...QSqlDatabase类的灵活性使得开发者能够与多种数据系统(如SQLite、MySQL、PostgreSQL等)进行交互,而不必担心底层数据细节。...这些方法提供了管理和操作数据连接的基本功能,包括连接数据、设置连接参数、打开和关闭连接、执行事务等。在实际使用中,开发者可以根据需要选择适当的方法来管理数据连接和执行数据操作。...、Oracle、ODBC 等,每种数据类型对应一个特定的驱动,开发者可以通过指定数据类型和连接名称创建相应的数据连接。

27910

iOS开发 -- 组件化 之 Cocoapods私有详解

组件化 为什么我们需要组件化 项目模块间的解耦、模块实现可重用、提升团队成员之间团队之间的协作开发效率、更方便单元测试。...cocoapods组件化:主要是利用 cocoapods 来进行 模块的远程管理,需要将项目上传 git (这里的组件化模块分为 公有 和 私有 , 对公司而言, 一般是私有) 本地组件化 创建主工程...下面我们开始组件化的一些概念学习:远程索引、本地索引、远程代码、本地代码;我们逐一进行介绍。...远程代码 用来存放准备组件化的代码,创建方式和创建远程索引方式一样。这里我们把 自己整理的 相关代码组件化,我们创建一个 WJHBaseWidgets 的远程代码。...,提交组件到远程代码并打tag git add .

1.4K41

使用Google开源AutoService进行组件开发

在Android模块开发之APT技术介绍了自定义注解处理器的一些知识,自定义注解处理器注册才能被Java虚拟机调用,在上面的博客第四小节中用的方法是手动注册,这比较违反程序员懒的特点,在里面也提到了自动注册的方法...,就是AutoService,今天这篇博客就是来扒一扒谷歌提供的这个开源。...这有两个坏处,一个是app Module直接强依赖A和B两个Module,另外如果开发中拿不到依赖的模块呢,有可能模块是第三方的,这个时候强依赖这种方式就行不通了。...Android模块开发之APT技术立下的flag,到今天才补上有点惭愧。...AutoService源码解析结合APT和SPI服用效果可能更佳哦,这个也是组件化技术中常用的一个技术点。

5.9K12

前端高效开发必备的 js 梳理

比如说你对移动端比较感兴趣, 工作中也刚好涉及到一些技术的应用,那么我可以专门研究移动端相关的技术和框架, 又或者你对企业后台/中台产品感兴趣, 比较喜欢开发PC端项目, 那么我们可以专门研究这种类型的...js或者框架, 接下来笔者也是按照不同前端业务的需求, 来整理一份能快速应用到工作中的js, 以提高大家的开发效率. js常用工具类 lodash 一个一致性、模块化、高性能的 JavaScript...fly.js 一个基于promise的http请求, 可以用在node.js, Weex, 微信小程序, 浏览器, React Native中 动画 Anime.js 一个JavaScript动画...鼠标/键盘相关 KeyboardJS 一个在浏览器中使用的(与node.js兼容).它使开发人员可以轻松设置键绑定和使用组合键来设置复杂的绑定....SortableJS 功能强大的JavaScript 拖拽 图形/图像处理 html2canvas 一个强大的使用js开发的浏览器网页截图工具 dom-to-image 一个可以将任意DOM节点转换为用

2K30
领券