Web3 整理React项目 导入Web3 并获取区块链信息

上文 WEB3 创建React前端Dapp环境并整合solidity项目,融合项目结构便捷前端拿取合约 Abi 我们用react 创建了一个 dapp 项目 并将前后端代码做了个整合

那么 我们就来好好整理一下 我们的前端react的项目结构
我们在 src 目录下创建一个 components
用来存放我们的 大规模组件

然后 在src下创建一个文件夹目录 叫 view 用来放我们的页面组件 也很多人喜欢把这个目录名字 命名为 pages 这都是看个人喜好 没强制要求叫什么 只是一个 大家都认可的规范 方便别人查看和二开你的项目 能够看得懂你的结构

然后 我们做个react路由

先终端输入

npm install react-router-dom --save

引入一下依赖
在这里插入图片描述
然后 我们在src目录下创建目录 router
专门用来管理路由的文件夹
然后 在router 下创建文件 index.jsx 这就是我们路由的配置文件

然后 我们在 view 中创建一个 index.jsx 作为我们的首页
然后 我们编写view 下的 index.jsx 代码如下

import React from 'react';export default function PageIndex() {return (<div>欢迎来到 Web3 练习的世界</div>);
}

就用他来做首页

然后 我们编写 router下的index.jsx 代码如下

import { BrowserRouter as Router,Routes,Route } from "react-router-dom";
import React from 'react';import PageIndex from '../view/index';export default function router() {const IndexRmin = ()=><div><PageIndex/></div>return (<div className="App"><Router><Routes><Route path='/' element = { IndexRmin() }></Route></Routes></Router></div>)
}

这里 我们引入整体路由配置 然后 引入 view 下的 index 组件 设置了 / 对应该组件路由 设置了我们的首页

然后 回到src下 将 App.css干掉
这个组件我们不需要了
在这里插入图片描述
然后 我们找到 src下的 index.js 或者 index.jsx 改写代码如下

import React from 'react';
import Router from "./router/index";export default function App() {return (<div className="App"><Router /></div>);
}

就是引入了我们的路由组件 然后我们启动项目
在这里插入图片描述
然后 我们可以看到 项目就起来了 整个项目结构也就搭好了

好 那么接下来 那么 走进首页 我们一定要去对合约进行一个连接
那么 这就需要 获取账号 初始化 等等 那么 就一定要安装 web3 这个模块

其实再简单不过 退出项目运行 终端执行

npm install web3@1.8.0 --save

注意 这里我们要 1.8.0 版本高了 有时反而有问题

然后 我们还是先把 ganache 的一个虚拟环境起来
终端执行

ganache -d

在这里插入图片描述
然后 我们在 view 下的index.jsx文件中 编写代码如下

import { useEffect } from 'react';
import Web3 from "web3";export default function PageIndex() {useEffect(() =>{async function start(){const WebData = await initialization()console.log(WebData)}start();},[])// 获取web 信息async function initialization() {var web3 = new Web3(Web3.givenProvider || "http://localhost:8545");let account = await web3.eth.requestAccounts();return account}return (<div>欢迎来到 Web3 练习的世界</div>);
}

这里 我们将 useEffect 作为生命周期 学过 Hook的朋友们都不陌生 useEffect第二个参数传一个空数组 表示这个生命周期只在进来时执行一次
然后 我们调用了自己写的一个initialization函数
这个函数 用来获取当前 本地区块链的信息 然后获取当前授权的登录列表
最后返回这个列表

然后 如果你没有授权 一进来 MetaMask 就会让你选择连接的账号
在这里插入图片描述
连接好之后 这边就能拿到他的账号列表了
在这里插入图片描述
好 那我们 后面再说 连接合约的内容啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哨兵1号后向散射系数土壤水分反演

哨兵1号后向散射系数土壤水分反演 数据导入 打开之前预处理之后的VH和VV极化的后向散射系数转存的tiff文件 导入实测点 选择KML转图层 kml文件是由奥维地图导出的.ovkml格式改后缀名得到的 提取采样点的后向散射系数 选择多值提取至点 右键打开点图层的属性表,发现…

k8s-18 认证授权

Authentication (认证) 认证方式现共有8种&#xff0c;可以启用一种或多种认证方式&#xff0c;只要有一种认证方式通过&#xff0c;就不再进行其它方式的认证。通常启用X509 Client Certs和Service Accout Tokens两种认证方式 Kubernetes集群有两类用户:由Kubernetes管理的Ser…

Oracle database 开启归档日志 archivelog

Oracle database 开启归档日志 archivelog 归档日志模式 (Archivelog Mode)。归档日志模式是一种数据库运行模式&#xff0c;它允许数据库将日志文件保存到归档日志目录中&#xff0c;以便在需要时进行恢复和还原操作。通过开启归档日志模式&#xff0c;可以提高数据库的可靠性…

服务器中了locked勒索病毒怎么办,勒索病毒解密,数据恢复

最近一段时间内&#xff0c;相信很多使用金蝶或用友的办公软件的企业&#xff0c;有很多都经历了locked勒索病毒的攻击&#xff0c;导致企业服务器被加密无法正常使用&#xff0c;严重影响了企业的正常工作。通过云天数据恢复中心的解密恢复发现&#xff0c;在今年locked勒索病…

缓解Oracles数据库内存不足的问题

解决思路&#xff0c;调整内存参数&#xff1b; 安装Oracle时&#xff0c;为了均衡电脑性能和数据库性能&#xff0c;Oracle一个实例默认内存占用大小为物理内存的1/8。 如环境不需要分配那么大的内存来支撑Oracle&#xff0c;可通过修改 sga_max_size 的值来减少系统中内存占…

STROBE-MR

Welcome to the STROBE-MR website! About: STROBE-MR stands for “Strengthening the Reporting of Observational Studies in Epidemiology using Mendelian Randomization”. Inspired by the original STROBE checklist, the STROBE-MR guidelines were developed to ass…

C++_linux下_非阻塞键盘控制_程序暂停和继续

1. 功能 在程序执行过程中,点击键盘p按键(pause), 程序暂停, 点击键盘上的n按键(next),程序继续执行 2. 代码 #include <iostream> #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/ioctl.h> char get_keyboar…

通信设备为什么需要接地阻?

在现代社会&#xff0c;通信设备已经成为我们生活中不可或缺的一部分。无论是手机、电视、计算机还是互联网路由器&#xff0c;它们都在不断地演进&#xff0c;以满足我们日益增长的通信需求。 实际应用中&#xff0c;我们都会了解到通信设备在正常运行时产生的电磁波辐射和电…

改写二分搜索算法

描述 设a[0:n-1]是已排好序的数组&#xff0c;请改写二分搜索算法&#xff0c;使得当x不在数组中时&#xff0c;返回小于x的最大元素位置i和大于x的最小元素位置j。当搜索元素在数组中时&#xff0c;i和j相同&#xff0c;均为x在数组中的位置。 输入格式: 输入有两行&#x…

解决报错:RuntimeError: “LayerNormKernelImpl“ not implemented for ‘Half‘

文章目录 1. 为什么报错&#xff1f;2. 解决办法2.1 方法12.2 方法22.3 其他 1. 为什么报错&#xff1f; 一般发生在模型推理过程中&#xff0c;由于精度导致的报错&#xff0c;一些硬件和框架对于半精度操作的支持可能有限&#xff0c;导致无法执行特定的操作。 2. 解决办法…

Flink之转换算子Transformation

转换算子Transformation 概述基本转换算子映射Map扁平映射flatMap过滤Filter 聚合算子按键分区keyBy归约聚合reduce简单聚合sum、min、max、minBy、maxBy 物理分区算子随机分配轮询分配重缩放广播全局分区自定义分区 分流操作Filter分流SideOutPut分流Split分流 合流操作联合Un…

4K壁纸小程序源码 全内容自动采集

全内容自动采集 4K壁纸小程序源码&#xff0c;带流量主。用的都是一个接口&#xff0c;不过这个不知是谁改的&#xff0c;成了LSP版&#xff0c;是真色啊&#xff0c;专搜小姐姐。 4K壁纸&#xff0c;静态壁纸&#xff0c;头像等都有保留&#xff0c;界面广告位很多&#xff0c…

线性回归原理

1、 线性回归的原理 1.1 线性回归应用场景 房价预测 销售额度预测 金融&#xff1a;贷款额度预测、利用线性回归以及系数分析因子1.2 什么是线性回归 1.2.1定义与公式 线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系…

导航守卫的使用记录和beforeEach( )死循环的问题

前置导航守卫beforeEach的使用 import Vue from vue import VueRouter from vue-router // 进度条 import NProgress from nprogress import nprogress/nprogress.cssVue.use(VueRouter)// 路由表 const routes [{path: "/",redirect: "/home",},{path: …

Unity3D Shader新手入门教程:3D溶解与腐蚀特效详解

引言 在游戏开发中&#xff0c;特效是非常重要的一部分&#xff0c;它能够增加游戏的趣味性和可玩性。其中&#xff0c;Shader特效是一种非常常见和常用的特效&#xff0c;它能够通过改变物体表面的渲染方式来实现各种各样的特效效果。本文将详细介绍Unity3D中的Shader 3D溶解与…

04 MIT线性代数-矩阵的LU分解 Factorization into A=LU

目的: 从矩阵的角度理解高斯消元法, 完成LU分解得到ALU 1.矩阵乘积的逆矩阵 Inverse of a product 2.矩阵乘积的转置 Transpose of a product 3.转置矩阵的逆矩阵 Inverse of a transpose 4.矩阵的LU分解 U为上三角阵(Upper triangular matrix), L为下三角阵(Lower triangular…

Qt系列-常用控件使用整理

1、QMainWindow介绍 菜单栏最多只有一个 //菜单栏创建 菜单栏最多只能有一个QMenuBar*bar menuBar();//将菜单栏放入到窗口中setMenuBar(bar);//创键菜单QMenu*fileMenubar->addMenu("文件");QMenu*editMenubar->addMenu("编辑");//创建菜单项QActi…

设计模式之六大设计原则

为什么要学习设计模式&#xff1f; 要知道设计模式就是软件工程的方法经验的总结&#xff0c;也是可以认为是过去一段时间软件工程的一个最佳实践&#xff0c;要理解&#xff0c;不要死记硬背。掌握这些方法后&#xff0c;可以让你的程序获得以下好处&#xff1a; 代码重用性…

【LeetCode】38. 外观数列

1 问题 给定一个正整数 n &#xff0c;输出外观数列的第 n 项。 「外观数列」是一个整数序列&#xff0c;从数字 1 开始&#xff0c;序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列&#xff1a; countAndSay(1) “1” countAndSay(n…

kali使用docker安装DVWA

上一篇文章我记录了如何使用kali安装DVWA&#xff0c;但是我是一个一个组件安装的&#xff0c;非常麻烦&#xff0c;比如数据库还需要配置&#xff0c;花费时间很多。昨天在逛github时&#xff0c;发现大佬的靶场都是通过docker打包好的&#xff0c;如果我也用docker安装DVWA&a…