每日质量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> ... 
随机推荐
- bzoj1594 Pku3764 The xor-longest Path
			题目链接 先求每个点到根的异或和 然后就要找出两个点,使dis[a]^dis[b]最大 注意异或的性质,我们可以用trie树,沿着与当前数字每位的相反方向走 #include<algorithm ... 
- Spring MVC数据绑定
			1.绑定默认数据类型 当前端请求参数较为简单的时候,后台形参可以直接使用SpringMVC提供的参数类型来绑定数据. HttpServletRequest:通过request对象获取请求信息: Htt ... 
- Python调用大漠插件
			Python版本要用32位的?我去官网下载,太慢了,就在腾讯软件里面下载了一个,结果实验成功 import win32com.client dm = win32com.client.Dispatch( ... 
- appJar 界面效果
			appJar from appJar import gui app = gui() def main(): app.setLocation(200, 200) app.addLabel('2333', ... 
- Oracle通过dblink连接MySQL
			需要把MySQL的一些数据同步到Oracle,用ETL工具太麻烦了,通过参考官方文档实现了oracle to mysql dblink.每次修改配置后,需要重启监听才能生效,或者 reload一下,确 ... 
- P2765 魔术球问题
			P2765 魔术球问题 贪心模拟就可以过.........好像和dinic没啥关系 找找规律发现可以贪心放.n又灰常小. 设答案=m 你可以$O(mn)$直接模拟过去 闲的慌得话可以像我用个$se ... 
- NPM安装步骤
			一.使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资 ... 
- Quick Find (QF)
			Quick Find 顾名思义就是快速查找,构建一个数组,通过下标即可迅速查找其id Union and Find:构建一个数组,下标为索引,数组元素的值为其id,初始id和索引相同 Union(p, ... 
- linux下部署git服务器
			我这里用的是redhat7.4, 直接开始吧. 环境 服务端: Redhat7.4 + git(version 1.8.3.1) IP:192.168.137.168 客户端: win7 + git ... 
- Mysql 用命令行导出导入数据方法
			方法一: 导出参考:https://www.cnblogs.com/activiti/p/6700044.html 用mysqldump可以导出整个数据库里的表和数据,不单单是只导出某个表的数据 命令 ... 
