个人学习笔记 ReactJS part1

本文介绍了React框架的核心概念,包括其背景、原理、组件化思想及其关键特性。详细解释了虚拟DOM如何提高性能,并探讨了组件的生命周期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

React的背景:
    在前端开发的过程中,我们通常会进行频繁或者复杂的DOM操作,这些操作往往是引起性能瓶颈的原因,因此如何去优化页面的性能是前端开发的技术指标之一,而React恰好可以满足我们的需要;
React的原理:
    React引入了虚拟DOM的机制,即在浏览器端用JS实现了一套DOM API,当我们用React进行开发的时候所有的DOM构造都是通过虚拟DOM进行构造。只要数据发生变化,React的虚拟DOM都会重新虚拟构造整个DOM树,然后将后来构造的DOM树与之前构造的DOM树进行比较,把发生了变化的那一部分DOM结构更新到浏览器的DOM树上。在整个过程中,每一次的数据变化都需要对整个DOM树进行重新构造,但是这些过程发生虚拟DOM中,因为虚拟DOM是内存数据,而且浏览器DOM实际操作的是diff部分,所以性能得到极大的提高。
Reactde的核心思想(封装组件):
    React不仅给我们带来了简单的UI逻辑,而且也给我们提供了组件化的思想,它认为:
    1.组件是可以相互组合的;
    2.组件是可以重复利用的;
    3.组件是个体,可以单独进行维护的。
React的概念;
    1.组件化;
        1.1、react允许将代码封装成组件,然后像插入普通标签一样,在网页中插入这个组件,例如:React.createClass用来生成一个组件类;
        1.2、所有的组件都必须有自己的render方法,用于输出组件;
        1.3、所有组件类的第一个字母必须大写;
        1.4、组件类只能包含一个顶层标签;
        1.5、组件的用法与原生html一致,可以任意加入属性,而这些属性可以从this.props中读取;(this.props对象的属性和组件的属性一一对应,但是有一个例外,就是this.props.children,当它在没有子节点的时候是undefined;当它在只有一个子节点的时候是Object;当它有多个子节点的时候是Array;而react提供React.Children方法来React.Children.map来遍历子节点,不必考虑上述情况)
    2.jsx:即javascriptXML,只是对js的拓展语言,由于jsx在定义类似HTML这种树形结构时十分简单明了,所有在使用react建议使用jsx。
        2.1、JSX的基本语法规则:遇到HTML标签('<'),就用HTML来解析,遇到('{')就用js来解析;
        2.2、允许使用HTML语法来创建对象,如a标签,React.render('a',{href:'http://www.xxx.com'},'hello react');=><a href='http://www.xxx.com'>hello react</a>;
        2.3、允许在jsx中使用Javascript表达式,表达式写在{}中;
        2.4、给组件添加class属性时,要用className;
        2.5、给组件添加样式时,要用style={{width:this.state.width}};
    3.与jquery的关系
        react不依赖于jquery,也可以在其中引入jquery,但是在react.render里面获取目标元素的时候我们必须要用原生js。
    4.react中的this.state: 
        4.1、设置getInitialState方法: 这个方法在组件初始化的执行,而且必须返回null或者一个Object; 
        4.2、绑定this.state.initialState: 通过this.state来对元素进行属性值的绑定,表达式为: attr={this.state.initialState};
        4.3、设置this.state: 通过自定义方法来设置一个或者更改一个state的值,例如   handleState: function(){
this.setState(initialSate: !this.state.initialState);                       
        }
        作用: 我们可以通过对自定义状态值来对组件进行操作,当状态值发生改变的时候,react自动调用其中的this.render方法重新渲染整个组件,然后进行执行diff算法,把需要更新的内容进行渲染。
    5、组件生命周期:
        5.1、Mounting: 已经插入真实的DOM树;
        5.2、Updating: 正在被重新渲染;
        5.3、Unmounting: 已经插入真实的DOM树;
内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度与训练时间,增强模型的解释性和可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节和全局趋势,显著提升预测精度和泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层和输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB和深度学习的科研人员、工程师和研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究和应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制和Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度和模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例和详细的模型描述有助于读者快速理解和复现该项目,促进学术和技术交流。建议读者在实践中结合自己的数据集进行调试和优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值