成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx

上传人:b****7 文档编号:25574964 上传时间:2023-06-09 格式:DOCX 页数:12 大小:21.84KB
下载 相关 举报
成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx_第1页
第1页 / 共12页
成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx_第2页
第2页 / 共12页
成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx_第3页
第3页 / 共12页
成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx_第4页
第4页 / 共12页
成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx

《成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx》由会员分享,可在线阅读,更多相关《成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx(12页珍藏版)》请在冰豆网上搜索。

成都java培训班哪家值得信赖需要掌握的Reactjs核心知识.docx

成都java培训班哪家值得信赖需要掌握的Reactjs核心知识

成都java培训班哪家值得信赖?

需要掌握的React.js核心知识

成都国信安java培训由副教学总监,优秀讲师带队并亲自授课,秉承成都国信安一贯的专业品质态度,在课程质量,学生素质,就业服务上相当严格要求,并以学业满意就业为目标,打造国内优秀java培训班,感兴趣的同学不妨关注国信安教育基地了解一下吧。

 

在IT行业,没有被淘汰的人,都获得了超过其它行业没被淘汰的群体平均水平的利益,IT行业是创造神话和个人价值实现的巨大梦工厂,在中国,从来没有哪个行业像IT行业这样创造一批批的财富神话,制造一批批优质的社会精英。

有一点说的很好:

中国IT行业发展是从90年代起来,到现在,最老的那批工程师才到40出头,中国IT还很年轻,这批40出头的程序员现在都是非常高的地位。

所以现在还没有老龄的程序员,大家都是人云亦云,其实都在猜测而已

IT行业是不是吃青春饭的行业,以及程序员是不是五年十年如一日的对着电脑编程,一目了然。

所以,难道你现在还在担心IT行业是青春饭,受困于各种外界声音犹豫不决吗?

成都国信安IT培训基地,只需四个月,帮你实现高薪IT梦!

四川地处中国大西南,肥沃的土地,丰富的自然资源,悠久的历史和绚烂多彩的少数民族文化,构成了多样性的自然和文化旅游资源。

在现今社会,高中学历很多只能做一些体力劳动,这也成为了很多人头疼的问题。

对于大多数企业里的文职工作,其实专业知识要求并不高,就是因为一个学历问题,让自己与好工作失之交臂,实在是一件可惜的事情。

IT培训这点事,外行看热闹,内行看门道。

对于一些相关经验,还是听老师傅的~上述想必大家都早有耳闻了,那么小编就直入正题,给大家介绍一下IT培训吧~

近来React.js变得越来越流行,本文就来谈一谈React.js的入门实践,通过分析一些常用的概念,以及提供一些入门的最佳编程编程方式,仅供参考。

首先需要搞懂的是,React并不是一个框架,React提供了一些新颖的概念、库和编程原则让你能够同时在服务端和客户端编写快速、紧凑、漂亮的代码来构建你的web应用。

如果你使用React,那么可能会涉及到一些常用的概念或技术,包括:

ES6React

虚拟DOM(virtualDOM)

组件驱动开发(component-drivendevelopment)

不变性(immutabilITy)

自上而下的渲染(top-downrendering)

渲染路径和优化

打包工具,ES6,构建请求,debugging,路由等

同构React(isomorphicReact)

什么是React.js

React.js不是一个框架

在整个Web应用的MVC架构中,你可以将React看作为视图层,并且是一个高效的视图。

React提供了和以往不一样的方式来看待视图,它以组件开发为基础。

对React应用而言,你需要分割你的页面,使其成为一个个的组件。

也就是说,你的应用是由这些组件组合而成的。

你可以通过分割组件的方式去开发复杂的页面或某个功能区块,并且组件是可以被复用的。

这个过程大概类似于用乐高积木去瓶装不同的物体。

我们称这种编程方式称为组件驱动开发。

React的一大特点是其所拥有的虚拟DOM,它让页面渲染变得非常的高效,并且比直接操纵DOM变得更为可控。

这两大特点的组合使得React具有强大的自上而下的页面渲染能力。

好了,React的有两个特点:

组件化和高效的虚拟DOM,但是为什么它这么被看好呢?

因为React更多的是一种概念层面的东西,而库是其次的。

也有很多其他遵从了这些思想的第三方实现。

和每一个编程概念一样,React尤其独有的解决方案、工具和工具。

但这里并不会深入的去讨论他们,而是关注React本身。

VirtualDOM

为了跟踪模型层的变化,并且将其应用到DOM中(也就是渲染),我们需要注意两个重要的事情:

数据是什么时候改变的

哪一个(些)DOM元素需要被更新

对于

(1)而言,React提供了一个观察者模型用于替代传统的脏检查(dirtychecking),也就是持续的检查模型的变化。

这也就是解释了为什么React不需要计算哪些发生了改变的原因,因为它会立即知道。

这个过程减少了计算量,并它应用程序变得更平滑。

但这里真正有趣的是,React是如何管理DOM操纵的。

对于DOM改变

(2)而言,React在内存中构建了DOM的树形表示,并且计算出哪个DOM元素应该被改变。

对浏览器而言,DOM操纵是比较耗费性能的,因此我们更倾向于让其变得最小化。

幸运的是,React视图尽可能少的触及到DOM元素。

给予对象表示而言,更少的DOM操纵意味着计算会更快,因此DOM改变也被尽可能的减少。

React在底层实现了一个diffing算法,该算法使用DOM的树形表示法,当某个节点发生变化(标记为dirty)时它会重新计算整个子树,你会注意到你的模型发生了改变,因为整个子树在之后会被重新渲染。

关于该算法的详细分析可以参考这篇文章(http:

//snip.ly/ywCe#

如何在服务端渲染

因为React在DOM表示时使用了一个虚拟(假的)DOM,因此借助于这种方式使得在服务端渲染输出HTML称为可能(不借助于JSDom,PhantomJS等)。

React还能智能的识别出服务端渲染出来的页面标记,并在客户端只为这些标记添加事件处理器,这对构建同构webapp非常有用。

有意思的是,React渲染出来的HTML标记都包含了data-reactid属性,这有助于React中追踪DOM节点。

一些阅读资料

React’sdiffalgorIThm

TheSecretsofReact’svirtualDOM

WhyisReact’sconceptofvirtualDOMsaidtobemoreperformantthandirtymodelchecking?

virtual-dom

组件驱动开发

对于component-drivendevelopment而言,你在一个模板中是看不到整个网站的。

虽然在一开始你可能会遇到一些困难,但是如果进一步的使用这种思路,你会发现它易于理解,易于维护,并且容易测试。

如何使用React的方式来思考组件开发

下面我们来看如何实现组件驱动开发这一理念。

我们看一个例子,这个例子来源于thinkinginreact这篇文章。

对于构建一个可过滤的产品列表而言,通常其包括如下的组件结构:

一个组件应该包含什么

首先,理想的,我们应该遵守单一责任原则来设计你的组件。

当你发下你的组件应该做的更多的时候,你可以考虑将其分割为更小的组件集合。

因为我们在讨论组件层级,因此在你的组件中也会使用到其他组件。

我们首先看下在ES5中组件代码是什么样子的:

varHelloComponent=React.createClass({

render:

function(){

return

Hello{this.props.name}

;

}

});

如果使用ES6,你的组件代码可以这样写:

classHelloComponentextendsReact.Component{

render(){

return

Hello{this.props.name}

;

}

}

JS和JSX

正如你说看到的,我们的组件是JS和HTML代码的混合,你可能会觉得这很糟糕,因为MVC一直在教我们尽可能的隔离视图和控制逻辑。

但另一方,这种混合获得另一个层面的单一责任,他使得组件更加的灵活和可重用。

当然,在React中你也可以使用纯JS来编写你的组件:

render(){

returnReact.createElement_x("div",null,"Hello",

this.props.name);

}

是的,你会发现这很麻烦,没有使用HTML来得直观。

因此React提供了JSX(JavaScripteXtension)语法让你能够在JS中书写HTML代码。

render(){

return

Hello{this.props.name}

;

}

什么是JSX

JSX在ECMAScript的基础上提供了类似于XML的扩展。

JSX和HTML有点像,但也有不一样的地方。

例如,HTML中的class属性在JSX中为className。

其他不一样的地方,你可以参考FB的HTMLTagsvs.ReactComponents这篇文章。

但是由于浏览器原生并不支持JSX,因此我们需要将其编译为JS,有很多方法能够完成这个任务,后面我们会提到这些方法。

此外,Babel也能够讲JSX编译为JS。

一些参考资料:

JSXindepth

OnlineJSXcompiler

Babel:

Howtousethereacttransformer

组件还应该包括什么

每个组件都应该包括一些内部状态,处理逻辑,和事件处理器(例如按钮点击、输入改变),当然也包括一些内部的样式。

你会遇到{this.props.name}这样的代码片段,这意味着你可以通过属性的方式先组件内传递数据,例如。

这让组件变得可重用,并且能够自上而下的向嵌套的组件传递数据。

示例代码如下:

classUserNameextendsReact.Component{

render(){

return

name:

{this.props.name}

;

}

}

classUserextendsReact.Component{

render(){

return

CITy:

{this.props.user.cITy}

;

}

}

varuser={name:

'John',cITy:

'SanFrancisco'};

React.render(,document.body);

React拥抱ES6

在React中尝试编写ES6是个非常不错的开始,React并不是一开始就支持ES6的,而是从v0.13.0开始支持的。

你会经常用到的ES6特性包括类、箭头函数、consts和模块。

例如,我们会经常从继承React.Component类开始编写我们的组件。

还有一点需要注意的是,并不是每个浏览器都支持ES6,因此目前情况下,我们需要使用一些工具将我们编写的ES6代码转换为ES5代码,我推荐使用Babel。

一些参考资料:

Babel:

LearnES6

ReactES6announcement

组件生命周期

每个React组件在加载时都有特定的生命周期,在此期间不同的方法会被执行。

下面简单介绍React组件的生命周期:

componentWillMount

该方法会在组件render之前执行,并且永远只执行一次。

componentDidMount

该方法会在组件加载完毕之后立即执行。

此时,组件已经完成了DOM结构的渲染,并可以通过this.getDOMNode()方法来访问。

componentWillReceiveProps

组件接收到一个新的prop时会被执行,且该方法在初始render时不会被调用。

shouldComponentUpdate

在组件接收到新的props或state时被执行。

componentWillUpdate

在组件接收到新的props或者state但还没有render时被执行。

在初始化时不会被执行。

componentDidUpdate

在组件完成更新后立即执行。

在初始化时不会被执行。

一般会在组件完成更新后被使用。

componentWillUnMount

在组件从DOM中unmount后立即执行。

该方法主要用来执行一些必要的清理任务。

关于生命周期的具体内容,你可以参考官方文档。

在打包时使用Webpack和Babel

我们会经常用到一些工具,首先一个是node.js的模块系统和它的包管理工具npm。

我们会编写node风格的代码来require我们需要的东西。

并且react本身也是一个独立的npm包。

通常你有两种选择,commonJS或者ES6:

varReact=require('react/addon');

varMyComponent=React.createClass({

//dosomething

});

module.exports=MyComponent;

或者

importReactfrom'react/addons';

classMyComponentextendsReact.Component{

//dosomethingusees6

}

exportdefaultMyComponent;

例如,我们会使用debug模块来调试,使用superagent模块来编写请求。

现在,我们有了Node的依赖管理系统,并且使用npm来提供模块。

下面我们需要做的事:

选择一个合适的库来打包我们的代码,并且能够让其运行在浏览器上。

因此我们需要一个打包器。

目前最流行的解决方案包括两个,分别是Browserify和Webpack。

我们选择使用Webpack,因为Webpack更适合于React社区。

Webpack是如何工作的

Webpack用于打包我们的代码,并且包含进我们需要的包,然后输出为浏览器可运行的文件。

因为我们使用JSX和ES6,因此我们需要相应的工具来将其转换为ES5。

事实上,Babel能够同时做这两件事。

使用Webpack能够很轻松的完成这些任务,因为Webpack是面向配置的。

使用如下命令开始:

npminIT

npminstallwebpack--save-dev

npminstallbabel--save-dev

npminstallbabel-loader--save-dev

然后创建webpack.config.js文件,我们需要使用ES5来编写该文件,因为它是webpack的配置文件。

一个典型的配置方式如下:

varpath=require('path');

module.exports={

entry:

path.resolve(__dirname,'../src/client/scripts/client.js'),

output:

{

path:

path.resolve(__dirname,'../dist'),

filename:

'bundle.js'

},

module:

{

loaders:

[

{

test:

/src/..js$/,

exclude:

/node_modules/,

loader:

'babel'

}

]

}

};

运行webpack命令你可以执行打包流程。

这之后你可以只在页面中包含bundle.js即可。

如下:

(提示:

你可以使用node-static来存放你的静态资源文件,使用npminstall-gnode-static来安装,并使用static.来启动)。

项目结构

一个典型的项目结构你可以参考这个仓库。

config/

app.js

webpack.js(jsconfigoverjson->flexible)

src/

app/(theReactapp:

runsonserverandclienttoo)

components/

__tests__(Jesttestfolder)

AppRoot.jsx

Cart.jsx

Item.jsx

index.js(justtoexportapp)

app.js

client/(onlybrowser:

attachapptoDOM)

styles/

scripts/

client.js

index.html

server/

index.js

server.js

.gITignore

.jshintrc

package.json

README.md

如何测试React组件

对于React组件的测试,这里推荐使用Jest,Jest也是由Facebook提供的测试框架,并且有很多强大的特性,但这里并会详细的介绍它们。

关于Jest,我推荐你阅读和尝试来自Facebook的Tutorial。

对于ES6代码的测试,你可以参考ReactES6Testing。

小结

本文简单介绍了React的基础原理,一些相关的编程技术。

后续还会整合一些资料谈一谈Flux和同构。

如果你想通过努力改变职场命运,如果你想了解更多职场咨讯、招聘信息、就业指南、前沿技术,请关注成都国信安官网一睹为快!

定期还有课程优惠及精彩活动,大大小小的惊喜在等着你呦!

国信安IT培训基地专注java培训、php培训、UI设计培训、软件测试培训、大数据培训、web前端培训等培训课程。

你们准备好怎么学习IT技术了吗?

来参加国信安IT培训课程,你的选择不会有错!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1