React-智能合约()与前端交互
React-HOH前端共学week2 项目学习笔记
大家好:
这次我以一个实际学习的 Web3 项目为例,一步步了解 React 开发中的重要概念。最近学习前端的知识,深知入门时的困惑,所以这次用最通俗的语言,结合实际代码来学习。
⚠️这次的代码示例,用的是HOH老陈老师给我们提到一个典范用例去学习。
1. 项目结构:你的代码应该放在哪里?
首先,让我们看看一个典型的 React 项目是怎么组织的:
这就像是整理你的房间:
components
就像你的工具箱,放着经常用到的小工具
pages
就像房间的不同区域,每个区域有特定的用途
lib
就像是收纳盒,存放各种通用的小物件
type
就像是使用说明书,告诉大家东西该怎么用
2. 路由:如何在页面间切换?
看看我们的
App.tsx
:这就像是给你的网站画了一张地图:
Router
就是整个地图的边框
Routes
就像是地图上的路线
Route
就是具体的目的地
path="/"
就是主页,像家的位置
path="/user"
就是用户页面,像是你常去的商店
3. 组件:积木游戏
导航栏组件:
组件就像乐高积木:
- 每个组件都是一个独立的积木块
Link
组件就像是门,让你能去到其他房间
className
就像是积木的颜色和形状
WalletStatus
是另一个积木块,专门显示钱包状态
4. Hooks:组件的记忆力
基础 Hooks
自定义 Hooks (复用)
Hooks 就像是给组件装上了不同功能的芯片:
useState
就像是记事本,能记住数字、文字等信息
useEffect
就像是一个自动执行的任务清单
[]
依赖数组就像是触发条件,告诉任务什么时候该执行
5.状态管理进阶
本地状态管理
就像是组件的私人笔记本:
- 只有自己能看到和修改
- 数据变化时会自动更新界面
- 适合管理组件内部的临时数据
全局状态管理
就像是公共告示板:
- 所有组件都能看到
- 数据变化时相关组件都会更新
- 适合管理需要共享的数据
6. 样式
项目使用了 Tailwind CSS,一个样式工具库
项目中常用的几个样式:
flex
就像是把东西排成一行
items-center
就像是让所有东西垂直居中
p-4
就像是给内容加上内边距
bg-white
就像是刷上白色油漆
shadow-md
就像是给元素加上阴影,让它看起来立体一点
我个人的学习方法是样式部分基本都是现用现查,不去记忆。
7.智能合约交互
查询链上状态
这就像是:
- 查看区块链上的"公告板"
- 找到所有创建用户档案的记录
- 整理成前端可以使用的格式
查询用户档案
- 先检查地址是否有效
- 根据地址查找用户的档案
- 将链上数据转换为可用格式
8.交易处理
创建用户档案
- 填写一份创建档案的表单
- 准备提交到区块链
- 等待区块链确认
⚠️ 在有些的智能合约和前端交互的功能会用到 PTB 交易块 or 签名交易 为的是保证交易的成功和防止篡改。
GraphQL 查询
部分code:
- 一次获取多个相关数据
- 减少网络请求次数
- 更高级的查询语言
有关React使用上的问题,欢迎您在底部评论区留言,一起交流~