您现在的位置是:网站首页> 编程资料编程资料
react render props模式实现组件复用示例_React_
2023-05-24
323人已围观
简介 react render props模式实现组件复用示例_React_
一 render props的使用步骤
1 创建要复用的组件,在组件中提供要复用的状态逻辑代码
2 将要复用的state作为方法的参数,暴露到组件外部
import React from "react"; import ReactDOM from "react-dom"; class App extends React.Component { render() { return 鼠标所在位置:{mouse.x},{mouse.y}
}/> } } //1 创建要复用的组件,在组件中提供要复用的状态逻辑代码 class Mouse extends React.Component { state = { x: 0, y: 0 } //监听鼠标移动时间 componentDidMount() { window.addEventListener("mousemove", this.handleMouseMove) } //鼠标移动的事件处理 handleMouseMove = e => { this.setState({ x: e.clientX, y: e.clientY }) } render() { //2 将要复用的state作为方法的参数,暴露到组件外部 return this.props.show(this.state) } } ReactDOM.render( , document.getElementById("root"));效果



二 组件的复用
实现鼠标移动,图片移动
import imgage from "./images/cat2.gif" class App extends React.Component { render() { return { return
}}> } }效果:图片跟着鼠标走


完整代码
import React from "react"; import ReactDOM from "react-dom"; import imgage from "./images/cat2.gif" class App extends React.Component { render() { return { return
}}> } } //1 创建要复用的组件,在组件中提供要复用的状态逻辑代码 class Mouse extends React.Component { state = { x: 0, y: 0 } //监听鼠标移动时间 componentDidMount() { window.addEventListener("mousemove", this.handleMouseMove) } //鼠标移动的事件处理 handleMouseMove = e => { this.setState({ x: e.clientX, y: e.clientY }) } render() { //2 将要复用的state作为方法的参数,暴露到组件外部 return this.props.show(this.state) } } ReactDOM.render( , document.getElementById("root") );三 使用children名代替属性


代码
import React from "react"; import ReactDOM from "react-dom"; import imgage from "./images/cat2.gif" class App extends React.Component { render() { return {mouse => { return
}} } } //1 创建要复用的组件,在组件中提供要复用的状态逻辑代码 class Mouse extends React.Component { state = { x: 0, y: 0 } //监听鼠标移动时间 componentDidMount() { window.addEventListener("mousemove", this.handleMouseMove) } //鼠标移动的事件处理 handleMouseMove = e => { this.setState({ x: e.clientX, y: e.clientY }) } render() { //2 将要复用的state作为方法的参数,暴露到组件外部 return this.props.children(this.state) } } ReactDOM.render( , document.getElementById("root") );
到此这篇关于react render props模式实现组件复用示例的文章就介绍到这了,更多相关react render props组件复用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
相关内容
- 基于JS制作一个网页版的猜数字小游戏_javascript技巧_
- JavaScript数据分析之交集,并集,对称差集_javascript技巧_
- 利用JavaScript实现简单全选和全不选的思路和方法_javascript技巧_
- vue el-table 动态添加行与删除行的实现_vue.js_
- vue组件vue-treeselect箭头和叉图标变大问题及解决_vue.js_
- Nodejs环境Eggjs加签验签示例代码_node.js_
- element-ui+vue-treeselect下拉框的校验过程_vue.js_
- 关于下拉类型多选组件Vue-Treeselect(键名转换)_vue.js_
- 如何修改vue-treeSelect的高度_vue.js_
- JavaScript中通用的jquery动画滚屏实例_javascript技巧_
