React Native开发经验集React Native开发React Native开发技巧

React组件封装集合

2018-11-01  本文已影响12人  a333661d6d6e

前言

一直以来,都是在项目中将公共React组件放在Common之类的文件夹,今天抽时间把以前博客介绍过的几个React组件抽象出来,挂载到npm上,提供下载安装。

React组件集合列表

下面列举的React组件都可以点击链接去github下载使用,具体安装教程看readme文档。

1、lazy-load-component

提供webpack异步加载React组件的高阶函数。

如果你的react项目使用了webpack,那么可以使用lazyLoadComponent实现代码切割。

import lazyLoadComponent from 'lazy-load-component'
const Login = lazyLoadComponent(() => import('./containers/Login'))

2、create-portal

一个封装好的react portal组件,你不需要在body下面写静态的HTML,使用create-portal可以自动生成DOM结构。

组件用法

<CreatePortal
 element={`a`} //String,默认为div
 id={`id`} //tring,可以不设置
 className={`classname`} //String,可以不设置
 style={{width: '100px'}} //Object,可以不设置
 >
 此处插入div或者react组件
</CreatePortal>

渲染结果

<body>
<div id="root"}>通常这是你的React根入口的元素</div>
<!--portal生成的DOM结构位于根元素之外-->
<a id="id" class="classname" style="width: 100px">
 此处插入div或者react组件
</div>
</body>//欢迎加入全栈开发交流群一起学习交流:864305860

3、react-roll-container

采用比IScroll更加轻量的JRoll封装的React组件,可以作为移动端DOM内部CSS3滚动的组件。

它是为了解决移动端body中有多层滚动重叠导致的卡顿和点击穿透问题,比如支付宝app里面的饿了么网站,就存在双层滚动时候的穿透问题。

常用在以下地方:

1、弹框内部的滚动

2、多列表的滚动

3、类似京东移动端垂直固定导航的滚动: 京东移动端页面

4、其他可能的场景

基本用法

import MyJRoll from 'react-roll-container'
class Component extends React.Component {
 state = {
 height: '100vh'
 }
 render() {
 const { height } = this.state
 return (
 <MyJRoll height={height + 'px'}>
 {/*子组件*/}
 </MyJRoll>
 )
 }
}
//欢迎加入全栈开发交流群一起学习交流:864305860

4、react-markdown-module

基于showdown封装的React-markdown组件,支持showdown的所有option配置项,采用github-markdown-css为默认样式,支持自定义其他样式。

基本用法

import ReactMarkdown from 'react-markdown-module'
const text = `
# Live demo
Changes are automatically rendered as you type.
* Implements [GitHub Flavored Markdown](https://github.github.com/gfm/)
* Renders actual, "native" React DOM elements
* Allows you to escape or skip HTML (try toggling the checkboxes above)
* If you escape or skip the HTML, no `dangerouslySetInnerHTML` is used! Yay!
## HTML block below
`
<ReactMarkdown markHtml={text}/>

5、react-watermark-module

React水印组件,支持图片水印,文字水印。

文字水印基本用法:

<ReactWatermark
 imagePath={} //必须,对象,背景图片
 textData={'欢迎加入全栈开发交流群一起学习交流:864305860'} 
 type={'text'} //必须,水印类型
/>

图片水印基本用法:

<ReactWatermark
 imagePath={} //必须,对象,背景图片
 logoPath={} //必须,logo水印的路径,用require或import导入
 type={'logo'} //必须,水印类型
/>

总结

还有很多可以用React来封装成小插件的东西,如果你也有想法,可以私信我,把你写的React组件也添加进来。
本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。
联系我们

上一篇下一篇

猜你喜欢

热点阅读