马蹄链DAPP合约项目系统开发技术方案丨(源码搭建)

简介: 马蹄链DAPP合约项目系统开发技术方案丨(源码搭建)

如何使用代码
安装项目前置依赖,以及启动项目的方法,参看:React 拾遗:项目脚手架。

请根据文章内容,把相应部分的代码注释取消,即可运行。

摘要
本文介绍

JavaScript 类与面向对象的参考资料
React 类中的属性与方法
React 的状态 state 读取与修改
项目代码地址:React 拾遗:类作为组件 (1)

JavaScript 类与面向对象
面向对象编程(Object-Oriented Programming, OOP)是一个古老的概念。OOP 要解决的一个问题是:

需要有一个容器,可以存放属性与方法
容器可以被继承。被继承的容器,其属性与方法都可以在新容器中继续复用
不管是 C++ 还是 Java 提到的类与实例,或者 Python 的 Metaclass,亦或是 JavaScript 的原型及其扩展,都是为了解决上述面向对象要解决的问题。

关于 JavaScript 的面向对象与原型链,可以在以下内容中找到详细叙述,本文不再赘述。

JavaScript高级程序设计(第3版), Nicholas C.Zakas
JavaScript面向对象编程指南(第2版),Stoyan Stefanov
Object - JavaScript | MDN
Object.prototype - JavaScript | MDN
Principles of Object-Oriented JavaScript, Nicholas C.Zakas
React 中的类组件
1 最简单的 React 类组件
React 的最简单的类组件如下所示:

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

class App extends Component {
render() {

return (
  <div>
    <h1>Title - main title</h1>
    <p>The content part</p>
  </div>
);

}
}

ReactDOM.render(, document.getElementById('root'));
React 的类组件都是继承自 React.Component,其中 Component 可以单独引入
React 类组件中唯一必须的方法是 render() {}。该方法返回一段 JSX 代码。
市面上有些教程,仍然使用 createReactClass。由于 React 已经全面转向使用 ES 6,所以用 createReactClass 创建类组件已经不再推荐。建议直接继承 React.Component 来创建 React 类组件。
2 类组件的属性与状态(state)
(1) render() 方法中的变量
为了动态显示 JSX 内容,在 render() 方法中可以使用变量,如下所示:

class App extends Component {
render() {

const title = 'main title';
return (
  <div>
    <h1>Title - {title}</h1>
    <p>The content part</p>
  </div>
);

}
}
但是 render() 方法中的变量,通常有两种用途:

设置内联样式
临时变量。主要根据条件,返回不同的 JSX 代码,达到根据条件判断而渲染的效果。
(2) constructor() 中的变量
如果要设置一个变量,让类中所有方法都能使用,就是放在构造器 constructor() 中。构造器中的变量,在类创建时就同时创建完成,可以在整个类中使用。

class App extends Component {
constructor() {

super()
this.title = 'title in constructor'

}

render() {

return (
  <div>
    <h1>Title - {this.title}</h1>
    <p>The content part</p>
  </div>
);

}
}
两个注意点:

构造器 constructor() 中,需要用一个 super() 方法,继承所有父类的属性与方法。而且,如果这个类组件要接受上层传递下来的 props 时,需要写成

class App extends Component {
constructor(props) {

super(props)
//...

}
//...
}

相关文章
|
9月前
|
算法 大数据 分布式数据库
DAPP质押模式系统开发项目方案|DAPP合约开发案例
区块链技术是一种分布式数据库技术,它是由多个节点构成的去中心化网络
|
7月前
|
安全 Java 区块链
matic马蹄链合约DAPP项目系统开发技术(成熟语言)
Matic Network是一种基于侧链的公共区块链扩展解决方案。它的基础是Plasma框架的调整实施。Matic提供了可扩展性,同时以安全和分散的方式确保了卓越的用户体验。它在KovanTestnet上为Etalum提供了一个工作实现。Matic打算在未来支持其他区块链,这将使它能够提供互操作性功能,同时为现有的公共区块链提供可伸缩性。
|
7月前
|
存储 安全 前端开发
区块链 DAPP 互助逻辑模式系统开发技术方案[源码示例]
Dapp(Decentralized Application)是指不受任何中心化组织或机构控制的、使用特定区块链技术为基础的去中心化应用程序。Dapp 是一种特殊类型的应用,它可以在任何基于区块链技术的系统,例如 Ethereum、EOS 或其他的智能合约系统上运行。
|
安全 Go
dapp丨defi代币合约系统开发详情说明丨案例分析丨需求设计丨成熟案例丨源码平台
Before developing the DApp pledge mining system, it is necessary to clarify the entire development process. Firstly, determine requirements and functional planning, including user interface design, contract writing, etc. Secondly, design the system architecture to determine the relationships and dat
|
9月前
|
安全 API 区块链
数字货币合约交易系统开发教程指南丨案例项目丨功能策略丨需求分析丨源码详细
Developing a digital currency contract trading system is a complex project, and the following are possible project requirements details:
|
安全 区块链
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
阐述永续合约交易所系统开发方案逻辑及案例项目丨源码程序
|
存储 开发框架 前端开发
BSC链Defiswap丨IPPswap丨NFTswap丨OMNIswap智能合约去中心化项目系统开发成熟技术/项目案例/源码说明
  区块链是一个分布式账本,使用密码学原理来记录数据,并且按照时间顺序进行记录。在区块链中,数据可以进行高度地分散,因为数据分布在不同的节点上。当一个区块链被添加到一个新的区块上时,它将包含以前的所有交易记录。
|
存储 人工智能 供应链
BSC币安智能链DAPP发行代币合约模式系统开发成熟技术/案例介绍/方案项目/源码平台
  区块链+人工智能的结合可以实现更加智能化和自动化的操作方式,使得操作更加简单、高效和安全。例如,在智能合约中,人工智能可以自动检测合约中的条件并执行相应的操作,大大减少了人工干预的需求
|
区块链 安全
DAPP智能合约去中心化系统开发详细方案/项目案例/规则玩法/源码程序
   DAPP is a decentralized application that is built on blockchain technology and has the characteristics of decentralization, openness, transparency, security, etc. DAPP can achieve various functions, such as digital currency wallets, decentralized exchanges, decentralized social networks, etc.