🔑 关键词:wagmi、viem、多钱包支持、connector、网络切换、自动重连、Zustand 状态管理、EIP-1193
背景:Web3 应用不能只支持 MetaMask
早期 DApp 大多只支持 MetaMask,但随着钱包生态爆发,用户分布在:
- 手机端(imToken、Trust、Rainbow)
- 浏览器端(MetaMask、Rabby、OKX Wallet)
- 多链钱包(Coinbase、WalletConnect)
- 合约钱包(Safe、UniPass 等)
你的 DApp 若只支持一种连接方式,将严重损失用户覆盖率。
原理:wagmi 与 viem 的协作架构
✅ wagmi 负责状态与连接逻辑(React Hook 封装)
- 封装钱包连接器(connectors)
- 管理连接状态(useAccount, useConnect, useDisconnect)
- 提供链 ID、钱包地址、连接状态等信息
✅ viem 负责底层 RPC 调用
publicClient:只读操作(查询合约、获取区块)
walletClient:需要签名的操作(合约写入、转账)
🧠 结构示意:
[user] → [wagmi connector] → [provider] → [viem client] → [chain]