当前位置: 首页 > news >正文

【无标题】react组件封装

子组件制作

import { useState,useRef, useEffect} from "react"const Table = (data)=> {const {value ,option} = dataconsole.log(value)const [stata,setValue]  = useState()const  useRefs = useRef(value)useEffect(()=> {useRefs.current.value  = value })const addGetvalue = () => {console.log(useRefs)}const table = ()=> {return <><input  ref={useRefs} onChange={(event)=> { useRefs.current = event.target.value option && option(event.target.value)}}/>4444444<button onClick={()=> {addGetvalue()}}> 初始化数据 </button></>}return  {table,addGetvalue}
}
export default Table

父组件制作

import logo from './logo.svg';
import './App.css';
import  tableaaa from './component/hooks/tableSwitch'
import { useRef ,useState} from 'react';
function App() {const {table,addGetvalue} = tableaaa({value:"llllll"})const newRef = useRef()const [state,setState] = useState()const text =  (changeValue)=> {const {table,addGetvalue} = tableaaa({value:"",option:changeValue})return table()}const changeValueOne = (value)=> {console.log("测试1事件",value)}const changeValueTow = (value)=> {console.log("测试2事件",value)}const changeValuethree = (value)=> {console.log("测试3事件",value)}const changeValuedao = (value)=> {console.log("测试4事件",value)}return (<div className="App">{table()}{text(changeValueOne)}{text(changeValueTow)}{text(changeValuethree)}{text(changeValuedao)}{/* <button onClick={()=> {addGetvalue()} }>kkkkkkkkkkkkkkkkkkkkkkkk</button> */}</div>);
}export default App;

好处,每个组件都是独立的,子组件子负责样式的渲染,父组件子负责数据的处理维护

问题:项目过大,组件引用混乱,改动一处,好几处不能使用,这种组件之间的事件都是独立相互之间不会影响

http://www.lryc.cn/news/463548.html

相关文章:

  • git+cmake将Open3D配置到visual studio
  • ArcGIS-CityEngine 2024-新手小白也能试用+入门可视化vga编程--第一篇
  • IntelliJ IDEA 快捷键大全(也适用全家桶其他编辑器)
  • 基于SSM高校普法系统的设计
  • CDN加速流程分享
  • 全网爆火的排队免单模式究竟是如何运作?
  • Excel:vba实现批量修改文件名
  • 【数据分享】中国历史学年鉴(1979-2001)
  • ubuntu系统启动wmplayer提示vmware unable to install all modules的处理方法
  • 数据库原理与应用(基于MySQL):实验六数据查询
  • 【java面经thinking】二
  • 正规方程推导,详细版
  • 【原创】java+ssm+mysql在线文件管理系统设计与实现
  • cocos Creator + fairyGUI 快速入门
  • UICollectionView 的UICollectionReusableView复用 IOS18报错问题记录
  • Ansible Roles与优化
  • Ubuntu 22.04上安装Miniconda
  • 【MySQL】入门篇—SQL基础:数据定义语言(DDL)
  • 电影评论网站开发:Spring Boot技术详解
  • 20240817 全志 笔试
  • laravel 查询数据库
  • 【Codeforces】CF 2009 F
  • GTP4聊天记录中letax保存为word
  • vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
  • 空间解析几何5-空间圆到平面的距离【附MATLAB代码】
  • [已解决] pycharm添加本地conda虚拟环境 + 配置解释器 - pycharm找不到conda可执行文件
  • SENT - Single Edge Nibble Transmission for Automotive
  • 2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)
  • 未来人工智能的发展对就业市场的影响 人工智能在生活中的相关
  • Oracle EBS 中财务模块