搭建一個 Web3 項目其實沒那麼複雜,尤其是用上 Hardhat 和 React 這兩大工具,能讓開發流程變得高效又順暢。下面直接帶你一步步搞定,從智能合約開發到前端互動,全流程覆蓋。
1. 搭建智能合約開發環境 ——Hardhat 入門#
Hardhat 是以太坊智能合約開發的利器,支持本地測試鏈、合約編譯、部署和調試。
-
初始化項目
在項目根目錄打開終端,執行:`npm init -ynpm install --save-dev hardhat
npx hardhat`
選擇 “創建一個 JavaScript 項目”,Hardhat 會幫你生成基礎配置和示例合約。 -
編寫智能合約
在contracts
文件夾下,新建或修改合約文件,比如MyToken.sol
,用 Solidity 寫你的邏輯。 -
編譯合約
執行:npx hardhat compile
確保合約沒有語法錯誤,生成對應的 ABI 和字節碼。 -
本地測試鏈啟動
Hardhat 自帶本地鏈,運行:npx hardhat node
這個節點會自動生成測試賬戶和私鑰,方便調試。 -
部署合約
在scripts
目錄寫部署腳本,比如deploy.js
:`async function main() {const MyToken = await ethers.getContractFactory("MyToken");
const token = await MyToken.deploy();
await token.deployed();
console.log("MyToken deployed to:", token.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
執行:
npx hardhat run scripts/deploy.js --network localhost`部署到本地測試鏈。
-
寫測試用例
在test
目錄寫 JavaScript 測試,利用 Mocha 和 Chai 驗證合約功能,保證合約穩定。
2. 搭建前端環境 ——React 快速啟動#
React 是構建用戶界面的首選框架,配合 Web3.js 或 Ethers.js 實現鏈上互動。
-
創建 React 項目
執行:`npx create-react-app web3-react-appcd web3-react-app`
-
安裝依賴
安裝 Ethers.js(推薦):npm install ethers
也可以用 Web3.js,根據喜好選擇。
-
連接錢包
在 React 組件中,添加連接 MetaMask 的邏輯:`import {useState} from"react";import { ethers } from "ethers";
function App() {
const [account, setAccount] = useState(null);
async function connectWallet() {
if (window.ethereum) { try { const accounts = await window.ethereum.request({ method: "eth_requestAccounts" }); setAccount(accounts[0]); } catch (error) { console.error("用戶拒絕連接錢包"); } } else { alert("請安裝 MetaMask 錢包"); }
}
return (
<div> <button onClick={connectWallet}>連接錢包</button> {account &&
已連接賬戶: {account}
}</div>
);
}
export default App;`
-
調用智能合約
將 Hardhat 部署合約的地址和 ABI 導入 React,調用合約方法:`import {ethers} from"ethers";import MyTokenABI from "./MyToken.json";
const contractAddress = "部署合約時打印的地址";
async function getTokenName() {
if (!window.ethereum) return;
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, MyTokenABI.abi, provider);
const name = await contract.name();
console.log ("代幣名稱:", name);
}`
-
實現互動功能
根據合約功能,設計前端按鈕和輸入框,調用合約的讀寫方法,實現轉賬、查詢餘額等功能。
3. 部署與上線#
-
部署合約到測試網或主網
修改 Hardhat 配置文件hardhat.config.js
,添加網絡配置,使用官方 RPC 或第三方服務。部署時用:npx hardhat run scripts/deploy.js --network rinkeby
或其他網絡。 -
前端托管
React 項目構建:npm run build
生成靜態文件,上傳到任何靜態網站托管服務即可。 -
備用域名訪問交易所
國內用戶訪問交易所時,可以使用 超鏈導航 提供的備用域名,保證訪問穩定:
總結#
用 Hardhat 搭建智能合約開發環境,配合 React 實現前端互動,能快速搭建一個完整的 Web3 項目。Hardhat 提供本地鏈和自動化工具,方便合約編寫、測試和部署。React 則讓用戶界面靈活易用,結合 Ethers.js 實現鏈上操作。通過合理分工,開發效率大幅提升。國內用戶訪問交易所時,借助 超鏈導航 的備用域名,能保證交易所訪問順暢。掌握這套流程,入門 Web3 開發不再難。