meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解

简介: meta佛萨奇矩阵项目系统开发技术(源码搭建)魔豹联盟系统开发技术讲解

配置 ES7 新增类功能
ES7 拟对 JavaScript 的类进行进一步的加强,比如属性可以不用在 constructor() 中设置,箭头函数的类方法自动绑定 this。但是这些新功能还处于 ES7 的 stage-2阶段,即起草阶段。

想要使用 ES 7 的新功能,需要使用 babel 的插件才能使用这些新功能。可以直接使用 babel-preset-stage-2@6.24.1 这个 npm 包,内容参见 Stage 2 preset。但是,stage-2 中的内容可能有些会被弃用,不确定性大,可以只使用其中关于类的功能。

这里是单独安装新增类功能的 babel 插件。

yarn add --dev babel-plugin-transform-class-properties@6.24.1
同时修改 .babelrc,把插件放进去。这样就可以使用 ES7 新增的类功能了。

{
"presets": ["env", "react"],
"plugins": ["transform-class-properties"]
}
ES7 新增类功能 1:属性可以定义在 constructor() 外面
原来类属性需要写在 constructor() 中,比如:

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

class App extends Component {
constructor(props) {

super(props);
this.title = 'Hello in constructor'; 

}
render() {

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

}
}

ReactDOM.render(, document.getElementById('root'));
ES7 可以不用把属性写在 constructor() 中。

在安装了上述 babel-preset-stage-2@6.24.1 插件以后,下面的代码仍然正确。
而且 props 可以直接使用,可以在 render() 方法中把 this.props 打印出来查看。
类属性变量前面不用写声明 const 或 let。调用属性仍然是 this.title 的形式。
class App extends Component {
title = 'Hello from outside';
render() {

console.log(this.props);
return (
  <div>
    <h1>Title - {this.title}</h1>
  </div>
);

}
}
这就意味着可以直接写 state,比如:

class App extends Component {
state = {

title: 'Hello from outside'

};
render() {

return (
  <div>
    <h1>Title - {this.state.title}</h1>
  </div>
);

}
}
ES7 新增类功能 2:箭头函数的类方法自动绑定 this
ES 6 中类方法需要绑定 this,即需要到 constructor() 中去调用 .bind(this) 才能用 this. 来调用,或者在调用处去绑定。

比如:实现一个点击标题,改变标题文字内容的功能的方法。ES 6 需要在 constructor 中绑定 this:

class App extends Component {
constructor() {

super()
this.changeTitle = this.changeTitle.bind(this);

}
state = {

title: 'Hello from outside'

};
changeTitle() {

this.setState({ title: 'changed' })

}
render() {

return (
  <div>
    <h1 onClick={this.changeTitle}>Title - {this.state.title}</h1>
  </div>
);

}
}
或者调用处去绑定 this:

class App extends Component {
state = {

title: 'Hello from outside'

};
changeTitle() {

this.setState({ title: 'changed' })

}
render() {

return (
  <div>
    <h1 onClick={this.changeTitle.bind(this)}>Title - {this.state.title}</h1>
  </div>
);

}
}

相关文章
|
4月前
|
人工智能 区块链 数据安全/隐私保护
Force佛萨奇2.0系统开发(成熟源码)原力佛萨奇系统开发项目方案
佛萨奇系统融合区块链与AI,助力企业高效搭建智能合约,实现业务自动化。通过区块链保证数据安全、不可篡改,智能合约减少人工干预。以下是一个展示其功能的以太坊智能合约代码片段,用于创建一个简易电子商务平台,包括添加商品、购买和查询操作。
|
6月前
|
自然语言处理 监控 搜索推荐
佛萨奇2.0/3.0Metaforce原力元宇宙系统开发步骤逻辑丨方案项目丨案例设计丨成熟技术丨源码功能
佛萨奇(VoZaChi)是一个虚拟助手系统,其发展至2.0和3.0版本会有一些特定需求和逻辑
IPPswap交易所系统开发详细指南丨需求设计丨教程方案丨源码项目
Based on the development of the IPPSwap exchange exchange exchange bottom pool LP pledge mining system you mentioned, the following is an overview of its basic process and elements
dapp众筹矩阵公排互助系统开发指南详细丨功能需求丨案例项目丨方案项目丨源码程序
Requirement analysis and planning: Clarify the system's goals and functional requirements. Understand the characteristics and working methods of the DApp crowdfunding matrix mutual assistance system. Collect user requirements, define the crowdfunding mechanism, matrix common ranking algorithm, and m
|
安全 Go
链游系统开发案例详情/NFT元宇宙链游系统开发方案项目/成熟技术/源码逻辑
Step 1: Requirements analysis and planning. At this stage, the development team needs to have in-depth communication with clients, understand their needs and expectations, and then develop development plans and project plans.
魔豹联盟佛萨奇2.0源码系统开发搭建(成熟技术)
魔豹联盟佛萨奇2.0源码系统开发搭建(成熟技术)
101 0
|
存储 算法 区块链
链游项目系统开发(方案设计)丨DAPP链游系统开发(案例分析)/成熟技术/区块链游戏开发/源码说明
  在区块链中,每个块包含了一定数量的交易信息和该块的唯一标识符,同时还包含了前一个块的哈希值。这样的设计保证了区块之间的顺序和完整性,一旦一个块被添加到区块链中,它就不可更改。This makes blockchain a secure and trustworthy distributed ledger that can be used to record and verify various types of transactions.
|
区块链
3M互助智能合约开发稳定版丨3M互助智能合约系统开发(玩法规则)/成熟案例/源码功能/案例项目/方案设计
 Smart contract DApp is the core technology for decentralized applications(DApp)using blockchain technology.The so-called smart contract refers to a smart contract system that automatically executes computer programs written in the form of digital code,realizing the automatic execution and managemen
|
Kubernetes 前端开发 API
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
NFT OpenSea平台系统开发技术方案丨技术成熟(源码部署)
156 0
|
Ubuntu Shell 开发工具
Meta佛萨奇2.0系统开发源码方案丨Meta魔豹联盟系统开发源码搭建
Meta佛萨奇2.0系统开发源码方案丨Meta魔豹联盟系统开发源码搭建