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>
);

}
}

相关文章
|
数据可视化 计算机视觉
ICCV2021 | TOOD:任务对齐的单阶段目标检测
单阶段目标检测通常通过优化目标分类和定位两个子任务来实现,使用具有两个平行分支的头部,这可能会导致两个任务之间的预测出现一定程度的空间错位。本文提出了一种任务对齐的一阶段目标检测(TOOD),它以基于学习的方式显式地对齐这两个任务。
ICCV2021 | TOOD:任务对齐的单阶段目标检测
|
3月前
|
存储 关系型数据库 MySQL
阿里云数据库多少钱? 阿里云数据库RDS 价格整理:最新 MySQL、SQL Server、PostgreSQL 和 MariaDB 收费标准
在云服务器选型市场中,2核8G、4核16G、8核32G是最具代表性的三类配置,均遵循1:4的CPU与内存黄金配比,覆盖了从个人开发者入门到中小企业核心业务的全场景需求。2核8G适合轻量应用部署,4核16G适配中负载业务运行,8核32G则能支撑高并发、大数据量处理场景。对于有云服务器需求的用户而言,清晰掌握这三类配置的收费标准、活动价格及影响因素,是精准选型、控制成本的关键。下面结合最新的行业信息,用通俗易懂的话汇总梳理这三类配置的核心价格信息,同时说明影响价格的关键因素,为用户提供全面参考。
|
3月前
|
人工智能 自然语言处理 数据安全/隐私保护
中国AI数字人市场全景透视:数字人技术、应用场景与企业竞争力分析
AI数字人融合多技术,具拟人外观、智能交互与专业服务能力,按成熟度分四级,广泛应用于各行业。当前,中国AI数字人市场已形成以技术实力型、生态赋能型、垂直创新型为代表的企业格局,助力企业降本增效、提升服务与体验。
423 0
|
Android开发 C++
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
1643 0
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
|
6月前
|
人工智能 运维 监控
AI加持下的容器运维:别再当“背锅侠”,让机器帮你干活!
AI加持下的容器运维:别再当“背锅侠”,让机器帮你干活!
301 8
|
10月前
|
监控 容灾 大数据
智慧家庭的解决方案
本系统由后台与前台两部分组成。后台包括服务器、大数据中心、智能设备控制云等,支撑智慧家庭运作;前台涵盖用户手机、家庭局域网及各类智能嵌入式设备(如马桶、空调、音响等)。系统部署上,后台在多地设数据中心以保障数据合规与容灾备份,前台则通过阿里云智能家居系统实现联网与智能化。具体设置覆盖家门口、客厅、厨房、房间、厕所、储物室等区域,配备面部识别门锁、健康监测设备、智能家电等,支持用户按需扩展学习、娱乐、办公等多功能智能设备。
|
机器学习/深度学习 算法 计算机视觉
YOLOv11改进策略【Conv和Transformer】| 2024 AssemFormer 结合卷积与 Transformer 优势,弥补传统方法不足
YOLOv11改进策略【Conv和Transformer】| 2024 AssemFormer 结合卷积与 Transformer 优势,弥补传统方法不足
327 3
YOLOv11改进策略【Conv和Transformer】| 2024 AssemFormer 结合卷积与 Transformer 优势,弥补传统方法不足
|
人工智能 大数据 双11
春节护航完美收官,中国邮政点赞阿里云
春节护航完美收官,中国邮政点赞阿里云
297 11
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
Web App开发 前端开发 JavaScript
JavaScript Web Full Stack 全栈开发者路线及内容推荐
本文详细介绍了一条全面的JavaScript全栈开发者学习路径,涵盖基础知识、前端和后端开发、数据库与API、MERN Stack与React Native、工程化与部署、安全与测试、未来趋势等方面。推荐了HTML5、CSS3、JavaScript(ES6+)、Node.js、React.js、Vue.js、Svelte、Tailwind CSS、Web Components等关键技术,并提供了丰富的书籍、博主和在线资源。此外,还回顾了JavaScript的历史,并推荐了多个活跃的社区和平台,帮助开发者紧跟技术前沿。