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

【无标题】react组件封装

子组件制作

import { useState,useRef, useEffect} from "react"



const Table = (data)=> {

   const {value ,option} = data

   console.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.kler.cn/a/350098.html

相关文章:

  • 使用 `scanpy` 观察 `AnnData` 对象内部数据结构
  • C语言初阶牛客网刷题——HJ73 计算日期到天数转换【难度:简单】
  • 【Rabbitmq】Rabbitmq高级特性-发送者可靠性
  • WordPress Hunk Companion插件节点逻辑缺陷导致Rce漏洞复现(CVE-2024-9707)(附脚本)
  • 循环队列(C语言版)
  • RV1126+FFMPEG推流项目源码
  • 图像按照X轴对称
  • FileLink内外网文件交换——致力企业高效安全文件共享
  • SpringFramework实战指南
  • libaom 源码分析:aomenc.c 文件
  • JAVA就业笔记6——第二阶段(3)
  • 不用搭建服务?MemFire Cloud让开发更简单
  • 00 springboot项目创建
  • 域1:安全与风险管理 第1章实现安全治理的原则和策略
  • AI赋能程序员-如何编写提示词
  • Codeforces Round 926 (Div. 2) D题 Sasha and a Walk in the City(树形dp)
  • 一起搭WPF架构之数据存入SQL——第一部分
  • Redisson使用全解
  • 微服务与SpringCloud的概述
  • knife4j常用注解
  • 大数据开发电脑千元配置清单
  • SpringBoot项目升级JDK版本(1.8 => 17)
  • Mac电脑使用pyenv管理多版本python环境 _
  • SpringBoot日常:封装redission starter组件
  • 基于Spring Boot的网上点餐系统
  • 【Spring AI】Java实现类似langchain的第三方函数调用_原理与详细示例