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

react自用小技巧(持续更新中)

react自用小技巧(持续更新中)

作者:devwolf

导言:

笔者应届时,投vue2就任一家大食品厂的资讯部后转成了react,写了一年出头的react类组件。然后跳槽到苏州科技城的一个原做影视渲染的公司开始全面转hooks,又写了两年多。再后来去一家智仓写irms羲和调度,react类组件和hooks混用干了5个月。某些在笔者v2ex上公开过的原因,笔者又跳回了互联网赛道,观摩着如今vue岗在国内趋于主流,打算“弃暗投明”转vue岗(也看到了vue3那些很多针对react痛点的新语法糖)。可惜,笔者的事业运一如既往的差,如今在一家给政府做房地产相关的公司里用vue2维护老项目纯体力活。

不想完全落下react的相关手艺,下一跳还选react,现在重新拾起来看看官网和自己随便搓搓东西。

目前这篇连载用于记录笔者react开发期间遇到的一些封装技巧/野路子。

同步记录于笔者的github devwolf

1.封装一个自带了ui组件的类自定义hooks

用react官网的例子改造一下,比较像自定义hooks,但是不完全是。闭包中提供了一个ui组件以及这个ui组件的修改方法,以此来进行外部的额外干预

import { useState } from 'react';export default function MyApp() {const {MyButtonUI:MyButtonUI1,handleClick:handleClick1}  = MyButton()const {MyButtonUI:MyButtonUI2,handleClick:handleClick2}  = MyButton()return (<div><h1>Counters that update separately</h1><button onClick={()=>{handleClick1()handleClick2()}}>all</button><MyButtonUI1 /><MyButtonUI2 /></div>);
}function MyButton() {const [count, setCount] = useState(0);function handleClick() {setCount(count + 1);}const MyButtonUI=()=>{return <button onClick={handleClick}>Clicked {count} times</button>}return {MyButtonUI,handleClick};
}

相关文章:

  • 最近关于工作与学习的一点思考
  • 深入解析Spring Cloud Consul:让微服务间的通信和管理更简单
  • CSS简述(1)
  • 使用LLaMA-Factory微调大模型
  • java mybatis处理大数据量,开启和配置二级缓存,及注意事项,已解决
  • Java 18新特性深度解析:提升开发效率与性能的革新工具
  • 重生之 SpringBoot3 入门保姆级学习(16、函数式 Web 编程)
  • 【NOIP提高组】方格取数
  • 如何将静态TCP/IP路由添加到Windows路由表?这里提供方法
  • Java线程中sleep()和wait()有什么区别
  • 基于docker的oracle12.2.0.1部署及oracle使用与docker镜像容器制作迁移方法
  • 寄存器、缓存、内存(虚拟、物理地址)、DDR、RAM的关系
  • 超大功率光伏并网逆变器学习(三相) 一
  • FPGA实现多路并行dds
  • 第15届蓝桥杯国赛JavaA组个人题解
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android开源项目规范总结
  • CSS实用技巧
  • JS基础之数据类型、对象、原型、原型链、继承
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • PHP面试之三:MySQL数据库
  • Python十分钟制作属于你自己的个性logo
  • TCP拥塞控制
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-router的history模式发布配置
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 搞机器学习要哪些技能
  • 关于extract.autodesk.io的一些说明
  • 聊聊directory traversal attack
  • 马上搞懂 GeoJSON
  • 前端知识点整理(待续)
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • #pragma once
  • (rabbitmq的高级特性)消息可靠性
  • (第一天)包装对象、作用域、创建对象
  • (二)丶RabbitMQ的六大核心
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (六)软件测试分工
  • (篇九)MySQL常用内置函数
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (转) Face-Resources
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET命名规范和开发约定
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • []FET-430SIM508 研究日志 11.3.31
  • [20160902]rm -rf的惨案.txt
  • [20181219]script使用小技巧.txt
  • [Android]使用Android打包Unity工程
  • [Assignment] C++1
  • [BZOJ] 2044: 三维导弹拦截