react制作toast组件
定义toast组件 ;toast.js
import React from 'react'; import "./style.css"; export default class Toast extends React.Component{ constructor(){ super(); this.state={ title:"" } } setOpts(opts){ this.setState({text:opts.title}); } render(){ return ( <div className="my-toast">{this.state.title}</div> ) } }2、定义对应样式:style.css
.my-toast{width:auto;height:auto;background-color:rgba(0,0,0,0.5);position: fixed;z-index:100; left:50%;top:50%;transform: translate(-50%,-50%);font-size:14px;color:#FFFFFF;padding:10px; border-radius: 2px;}3、由于toast创建不是在<div id="app"></div>里面所以需用用document来创建元素;index.js
import React from "react"; import ReactDom from 'react-dom'; import Toast from './toast'; export default function(opts){ //创建div元素 let div=document.createElement("div"),duration=opts.duration || 2000; document.body.appendChild(div); //将Toast和div挂载到render let toastInit=ReactDom.render(<Toast/>,div); toastInit.setOpts(opts); setTimeout(()=>{ setTimeout(()=>{ document.body.removeChild(div); },200) if(opts.onClose){ opts.onClose(); } },duration) };4、代码里调用toast
import Toast from './components/toast'; Toast({ title:"请输入用户名", duration:3000, onClose:()=>{ console.log("toast已关闭"); } });实现逻辑:调用的时候首先会先调用index.js中的函数,然后在index.js中先用document.createElement创建div,然后用ReactDom.render渲染组件,渲染同时可以调用组件的方法并把对应的参数传递给组件,然后组件中接收对应参数并赋值给组件
306浏览量 · 0评论 · 2020-06-19 04:19:28
热门专题
-
01
前端 / HTML超文本标记语言,标准通用标记语言下的一个应用。 “超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。 超文本标记语言的结构包括“头”部分
13 篇文章
-
02
前端 / JS/JQjQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。
31 篇文章
-
03
前端 / CSS层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
15 篇文章
-
04
前端 / VUE Vue是一套构建用户界面的渐进式框架。 Vue只关注视图层,采用自底向上增量开发的设计。
41 篇文章
-
05
设计 / PhotoshopPhotoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以有效地进行图片编辑工作。
0 篇文章
-
06
后端 / PHPPHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言
0 篇文章
-
07
设计 / aihtml是超文本标记语言
0 篇文章
-
08
后端 / ThinkPhpThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。遵循Apache2开源协议发布。简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。
5 篇文章
-
09
前端 / 微信小程序微信小程序,简称小程序,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
3 篇文章
-
10
办公 / WordWord 提供了许多易于使用的文档创建工具,同时也提供了丰富的功能集供创建复杂的文档使用。
2 篇文章
全部评论 0