每日质量NPM包模态框_react-modal
一、react-modal
官方定义: Accessible modal dialog component for React.JS
理解: 一个容易使用的React模态框组件
二、用法
有时候我们不用一些UI框架的时候(bs3.0、antd),就需要自己封装一些模态框.自己定义各种回调事件...等等
这时候可以考虑用一个npm模态框的包
安装
```
$ npm install react-modal
import ReactModal from 'react-modal'
<h4>事件</h4>
<b>isOpen</b>: 模态框状态控制
<b>onAfterOpen</b>: 模态框打开后的回调事件
<b>onRequestClose</b>: 模态框关闭后的回调事件
<b>style</b>: 模态框样式,默认以`content`为默认应用名
<b>contentLabel</b>: 内容label
<h3>和React结合</h3>
import React,{ PureComponent } from 'react'
import ReactModal from 'react-modal'
const customStyles = {
content: {
width: '300px',
height: '300px',
top: '50%',
left: '50%',
transform: 'translate(-50%, -55%)'
},
btn: {
marginTop: 30,
background: 'transparent',
padding: '10px 15px'
}
};
ReactModal.setAppElement('#root')
export default class ReactModalComp extends PureComponent{
constructor(arg){
super(arg)
this.state = {
modalOpenState: false,
}
this.openModal = this.openModal.bind(this)
this.closeModal = this.closeModal.bind(this)
}
openModal(){
this.setState({
modalOpenState: true,
})
}
closeModal(){
this.setState({
modalOpenState: false,
})
}
afterOpenModalEv(){
console.log('==========> 打开')
}
render(){
const { modalOpenState } = this.state;
return(
<div className="reactModal">
<button onClick={this.openModal} style={customStyles.btn}>打开</button>
<ReactModal
isOpen = {modalOpenState}
style={customStyles}
contentLabel="Example Modal"
onAfterOpen={this.afterOpenModalEv}
>
<form>
<input />
<p>tab navigation</p>
<p>stays</p>
<p>inside</p>
<p>the modal</p>
</form>
<button onClick={this.closeModal}>关闭</button>
</ReactModal>
</div>
)
}
}

<h4>更多DEMO</h4>
<a href="https://codepen.io/claydiffrient/pen/KNxgav" target="_blank">《基础Modal》</a>
<a href="https://codepen.io/claydiffrient/pen/KNjVBx?editors=1111" target="_blank">《结合onRequestClose》</a>
<a href="https://codepen.io/claydiffrient/pen/KNjVrG" target="_blank">《使用样式的Modal》</a>
<a href="https://codepen.io/claydiffrient/pen/woLzwo" target="_blank">《shouldCloseOnOverlayClick》</a>
每日质量NPM包模态框_react-modal的更多相关文章
- 每日质量NPM包复制_copy-to-clipboard
一.copy-to-clipboard 官方定义: Simple module exposing copy function 理解: 一个超级简单的复制功能,并且这种方法适用于通过别的事件触发复制功能 ...
- 每日质量NPM包事件绑定_bindme(详解React的this)
一.bindme 官方定义: is a helper to bind a list of methods to an object reference 理解: 因为不推荐在render()里构建函数, ...
- 每日质量NPM包拖拽文件上传_react-dropzone
一.react-dropzone 官方定义: Simple HTML5-compliant drag'n'drop zone for files built with React.js. 理解: 一个 ...
- 每日质量NPM包-classnames
一.classnames 现在到处都追求效率开发,所谓存在即合理,各种各样的开源包/项目火热,也是因为他们大大解决了之前复杂的逻辑.作为榜上前10的热门包:classnames.还真需要了解了解它才能 ...
- js控制Bootstrap 模态框(Modal)插件
js控制Bootstrap 模态框(Modal)插件 http://www.cnblogs.com/zzjeny/p/5564400.html
- Bootstrap 模态框(Modal)插件
原文链接:http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html Bootstrap 模态框(Modal)插件 模态框(Modal)是覆 ...
- Bootstrap <基础三十二>模态框(Modal)插件
模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动.子窗体可提供信息.交互等. 如果您想要单独引用该插件的功能,那么您需要引用 ...
- 拥Bootstrap入怀——模态框(modal)篇
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<CSS绘制Android Robot> 作者主页:myvin 博主QQ:851399101(点击QQ和 ...
- Bootstrap 实例 - 模态框(Modal)插件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
随机推荐
- [转载]oracle的加密和解密
加密函数 create or replace function encrypt_des(p_text varchar2, p_key varchar2) return varchar2 isv_tex ...
- 如何使用Linux 命令more 查看文本文件
Linux 下有很多实用工具可以让你在终端界面查看文本文件.其中一个就是 more. more 跟我之前另一篇文章里写到的工具 —— less 很相似.它们之间的主要不同点在于 more 只允许你向前 ...
- 基于spring框架的jt项目分页查询知识点(一)
知识点汇总(一) 1. 点击事件函数 $(function(){ //事件注册,(表示在#pageId对应容器对象的相关子元素中注册click事件) $("#pageId").on ...
- JS笔记—03(DOM编程)
1. 动态体现:HTML代码加载到浏览器,代码运行后改变文档(DOM树)增删改查节点.例如:ajax(不是新技术,是几个技术的合体js+http后台操作)就是这样的原理 2.js对象(浏览器对象.脚本 ...
- 计算概论(A)/基础编程练习2(8题)/5:点和正方形的关系
#include<stdio.h> #include<math.h> int main() { // 输入坐标 float x, y; while(scanf("%f ...
- git获取一个版本相对于另一个版本新增,修改,删除的文件
git diff --name-status 00ef237ef0f0a4b8bd9609c2b6d570472028212d abf13b4d58abbb05a7d494cdc205d025978a ...
- HAProxy实现slave负载均衡[高可用]
下面要执行的是HAProxy部分 这是一个集群,其他的部分在: mysql-cluster 7.3.5安装部署 mysql主备部署[高可用] mysql主备切换[高可用] mysql读写分离[高可用] ...
- mvc 文件下载
public class DownLoadHelper { /// <summary> /// WriteFile实现下载--测试通过 /// </summary> /// & ...
- [c/c++] programming之路(6)、ASCII码,数据类型、随机数、字符转换及拼接等
一.变量 #include<stdio.h> #include<stdlib.h> void main0(){ //数据使用必须在范围内,否则产生溢出 unsigned +;/ ...
- alloc_skb申请函数分析
alloc_skb()用于分配缓冲区的函数.由于"数据缓冲区"和"缓冲区的描述结构"(sk_buff结构)是两种不同的实体,这就意味着,在分配一个缓冲区时,需要 ...