Examine individual changes
This page allows you to examine the variables generated by the Edit Filter for an individual change.
Variables generated for this change
Variable | Value |
---|---|
Whether or not the edit is marked as minor (no longer in use) (minor_edit ) | false |
Edit count of the user (user_editcount ) | null |
Name of the user account (user_name ) | '14.141.254.90' |
Age of the user account (user_age ) | 0 |
Groups (including implicit) the user is in (user_groups ) | [
0 => '*'
] |
Global groups that the user is in (global_user_groups ) | [] |
Whether or not a user is editing through the mobile interface (user_mobile ) | false |
Page ID (page_id ) | 44926137 |
Page namespace (page_namespace ) | 0 |
Page title without namespace (page_title ) | 'React (JavaScript library)' |
Full page title (page_prefixedtitle ) | 'React (JavaScript library)' |
Last ten users to contribute to the page (page_recent_contributors ) | [
0 => 'Vlad Dm',
1 => '203.99.199.149',
2 => '92.237.16.39',
3 => '70.184.214.35',
4 => 'CommonsDelinker',
5 => '217.250.121.176',
6 => 'Miklosmegyes',
7 => 'N2e',
8 => 'Ignu',
9 => 'Nonymous-raz'
] |
First user to contribute to the page (page_first_contributor ) | 'Patcito' |
Action (action ) | 'edit' |
Edit summary/reason (summary ) | '/* History */ ' |
Old content model (old_content_model ) | 'wikitext' |
New content model (new_content_model ) | 'wikitext' |
Old page wikitext, before the edit (old_wikitext ) | '{{Infobox software
| name = React
| logo =
| author = Jordan Walke
| developer = [[Facebook]], [[Instagram]] and community
| released = {{Start date and age|2013|3}}
| latest release version = 15.4.0
| latest release date = {{Start date and age|2016|11|16}}<ref>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> <!-- DO NOT CHANGE THIS REFERENCE: the github release page can remain as a static reference for all foreseeable releases-->
| latest preview version =
| latest preview date = <!-- {{Start date and age|2016|04|7}}<ref name='ghrelease'>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> -->
| status = Active
| programming language = [[JavaScript]]
| platform = [[Cross-platform]]
| size = 117 KiB production<br />559 KiB development
| genre = [[JavaScript library]]
| license = [[BSD licenses#3-clause|3-Clause BSD]] with Facebook addendum (not [[Open Source Initiative|OSI-approved]])
| website = {{URL|facebook.github.io/react}}
}}
{{Advert section|date=March 2016}}
'''React''' (sometimes styled '''React.js''' or '''ReactJS''') is an [[open-source software|open-source]] [[JavaScript library]] for building [[user interfaces]].
It is maintained by [[Facebook]], [[Instagram]] and a community of individual developers and corporations.<ref>{{cite web | website=InfoWorld | title=React: Making faster, smoother UIs for data-driven Web apps | url=http://www.infoworld.com/article/2608181/javascript/react--making-faster--smoother-uis-for-data-driven-web-apps.html}}</ref><ref>{{cite web | website=InfoQ | title=Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews | url=http://www.infoq.com/news/2013/06/facebook-react}}</ref><ref>{{cite web | title=JavaScript’s History and How it Led To ReactJS | url=http://thenewstack.io/javascripts-history-and-how-it-led-to-reactjs/ | website=The New Stack}}</ref> According to [[JavaScript]] analytics service [[Libscore]], React is currently being used on the websites of [[Netflix]], [[Imgur]], [[Bleacher Report]], [[Feedly]], [[Airbnb]], [[SeatGeek]], [[HelloSign]], [[Walmart]], and others.<ref>{{cite web|url=http://libscore.com/#React|title=Libscore|work=libscore.com}}</ref>
== History ==
React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.
==Notable features==
=== One-way data flow ===
Properties, a set of immutable values, are passed to a component's renderer as properties in its HTML tag. A component cannot directly modify any properties passed to it, but can be passed callback functions that do modify values. This mechanism's promise is expressed as "properties flow down; actions flow up".
=== Virtual DOM ===
Another notable feature is the use of a "virtual [[Document Object Model]]," or "virtual DOM." React creates an in-memory data structure cache,
computes the resulting differences, and then updates the browser's displayed DOM
efficiently.<ref name=workingwiththebrowser>{{cite web|title=Working With the Browser|url=http://facebook.github.io/react/docs/working-with-the-browser.html|website=React}}</ref>
This allows the programmer to write code as if the entire page is rendered on each change while the React libraries only render subcomponents that actually change.
=== JSX ===
React components are typically written in JSX, a JavaScript extension syntax allowing quoting of HTML and using HTML tag syntax to render subcomponents.<ref>{{Cite web|title = JSX in Depth |url = https://facebook.github.io/react/docs/jsx-in-depth.html|accessdate = 2015-11-17}}</ref> HTML syntax is processed into JavaScript calls of the React library. Developers may also write in pure JavaScript. JSX is similar to another extension syntax created by Facebook for PHP, [[XHP]].
=== Architecture beyond HTML ===
The basic architecture of React applies beyond rendering HTML in the browser. For example, Facebook has dynamic charts that render to <canvas> tags,<ref>https://facebook.github.io/react/blog/2013/06/05/why-react.html</ref> and Netflix and PayPal use isomorphic loading to render identical HTML on both the server and client.<ref name=paypal-isomorphic-reactjs>{{cite web|title=PayPal Isomorphic React|url=https://www.paypal-engineering.com/2015/04/27/isomorphic-react-apps-with-react-engine/}}</ref><ref name=netflix-isomorphic-reactjs>{{cite web|title=Netflix Isomorphic React|url=http://techblog.netflix.com/2015/01/netflix-likes-react.html}}</ref>
=== React Native ===
{{See also|WinJS}}
React Native libraries were announced by Facebook in 2015,<ref>https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile/</ref> providing the React architecture to native iOS, Android and UWP<ref>{{cite web |author=Windows Apps Team |date=April 13, 2016 |title=React Native on the Universal Windows Platform |url=https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/ |website=blogs.windows.com |accessdate=2016-11-06}}</ref> applications.
== Future development ==
Project status can be tracked via the core team discussion forum.<ref>{{Cite web|title = Meeting Notes|url = https://discuss.reactjs.org/c/meeting-notes|website = React Discuss|accessdate = 2015-12-13}}</ref> However major changes to React go through the [https://github.com/reactjs/react-future Future of React repo], Issues and [[Pull request|PR]].<ref>{{Cite web|title = reactjs/react-future - The Future of React|url = https://github.com/reactjs/react-future|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = facebook/react - Feature request issues|url = https://github.com/facebook/react/labels/Type:%20Feature%20Request|website = GitHub|accessdate = 2015-12-13}}</ref> This enables the React community to provide feedback on new potential features, experimental APIs and JavaScript syntax improvements.
=== Sub projects ===
The status of the React sub-projects used to be available in the project wiki.<ref>{{Cite web|title = facebook/react Projects wiki|url = https://github.com/facebook/react/wiki/Projects|website = GitHub|accessdate = 2015-12-13}}</ref>
=== Facebook CLA ===
Facebook requires contributors to React to sign the Facebook [[Contributor License Agreement|CLA]].<ref>{{Cite web|title = facebook/react - CONTRIBUTING.md|url = https://github.com/facebook/react/blob/master/CONTRIBUTING.md#contributor-license-agreement-cla|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = Contributing to Facebook Projects|url = https://code.facebook.com/cla|website = Facebook Code|accessdate = 2015-12-13}}</ref>
== Licensing ==
The initial public release of React in May 2013 used a standard [[Apache License|Apache License 2.0]]. In October 2014, React 0.12.0 replaced this with a [[BSD licenses#3-clause|3-clause BSD license]] and added a separate PATENTS text file that permits usage of any Facebook patents related to the software:<ref>{{cite web|title=React CHANGELOG.md|url=https://github.com/facebook/react/blob/master/CHANGELOG.md#0120-october-28-2014|website=GitHub}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, for anyone that makes any claim (including by filing any lawsuit, assertion or other action) alleging (a) direct, indirect, or contributory infringement or inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, (ii) by any party if such claim arises in whole or in part from any software, product or service of Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, or (iii) by any party relating to the Software; or (b) that any right in any patent claim of Facebook is invalid or unenforceable."''</blockquote>
This unconventional clause caused some controversy and debate in the React user community, because it could be interpreted to empower Facebook to revoke the license in many scenarios, for example if Facebook sues the licensee prompting them to take "other action" by publishing the action on a blog or elsewhere. Many expressed concerns that Facebook could unfairly exploit the termination clause or that integrating React into a product might complicate a startup company's future acquisition.<ref>{{cite web|title=A compelling reason not to use ReactJS|first=Austin|last=Liu|url=https://medium.com/bits-and-pixels/a-compelling-reason-not-to-use-reactjs-beac24402f7b|website=Medium}}</ref>
Based on community feedback, Facebook updated the patent grant in April 2015 to be less ambiguous and more permissive:<ref>{{cite web|title=Updating Our Open Source Patent Grant|url=https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. [...] A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim."<ref>{{cite web|title=Additional Grant of Patent Rights Version 2|url=https://github.com/facebook/react/blob/b8ba8c83f318b84e42933f6928f231dc0918f864/PATENTS|website=GitHub}}</ref>''</blockquote>
This second version of the patent grant remains controversial, making use of the library unacceptable for some developers. This is because the document continues to allow Facebook to revoke the right to use the library under Facebook patents in the event that the licensee brings a patent lawsuit against Facebook.<ref>{{cite web|title=Legal Department Did not Allow Use of React|url=https://discuss.reactjs.org/t/legal-department-did-not-allow-use-of-react/3309}}</ref>
==References==
{{Reflist|2}}
==External links==
{{Portal|Free software}}
* List of React resources – [https://github.com/enaqx/awesome-react AwesomeReact]
* Guide for React ecosystem By Pete Hunt - [https://github.com/petehunt/react-howto React howto]
* React vs Angular - [https://www.cleveroad.com/blog/react-vs-angular-ultimate-performance-research-2017 ReactJS vs AngularJS 2 ultimate performance research 2017]
{{JS templating |state=autocollapse}}
{{Rich Internet applications}}
{{Application frameworks}}
{{ECMAScript}}
{{Facebook navbox}}
[[Category:2015 software]]
[[Category:Ajax (programming)]]
[[Category:Facebook software]]
[[Category:JavaScript web frameworks]]
[[Category:Rich Internet application frameworks]]
[[Category:Software using the BSD license]]' |
New page wikitext, after the edit (new_wikitext ) | '{{Infobox software
| name = React
| logo =
| author = Jordan Walke
| developer = [[Facebook]], [[Instagram]] and community
| released = {{Start date and age|2013|3}}
| latest release version = 15.4.0
| latest release date = {{Start date and age|2016|11|16}}<ref>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> <!-- DO NOT CHANGE THIS REFERENCE: the github release page can remain as a static reference for all foreseeable releases-->
| latest preview version =
| latest preview date = <!-- {{Start date and age|2016|04|7}}<ref name='ghrelease'>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> -->
| status = Active
| programming language = [[JavaScript]]
| platform = [[Cross-platform]]
| size = 117 KiB production<br />559 KiB development
| genre = [[JavaScript library]]
| license = [[BSD licenses#3-clause|3-Clause BSD]] with Facebook addendum (not [[Open Source Initiative|OSI-approved]])
| website = {{URL|facebook.github.io/react}}
}}
{{Advert section|date=March 2016}}
'''React''' (sometimes styled '''React.js''' or '''ReactJS''') is an [[open-source software|open-source]] [[JavaScript library]] for building [[user interfaces]].
It is maintained by [[Facebook]], [[Instagram]] and a community of individual developers and corporations.<ref>{{cite web | website=InfoWorld | title=React: Making faster, smoother UIs for data-driven Web apps | url=http://www.infoworld.com/article/2608181/javascript/react--making-faster--smoother-uis-for-data-driven-web-apps.html}}</ref><ref>{{cite web | website=InfoQ | title=Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews | url=http://www.infoq.com/news/2013/06/facebook-react}}</ref><ref>{{cite web | title=JavaScript’s History and How it Led To ReactJS | url=http://thenewstack.io/javascripts-history-and-how-it-led-to-reactjs/ | website=The New Stack}}</ref> According to [[JavaScript]] analytics service [[Libscore]], React is currently being used on the websites of [[Netflix]], [[Imgur]], [[Bleacher Report]], [[Feedly]], [[Airbnb]], [[SeatGeek]], [[HelloSign]], [[Walmart]], and others.<ref>{{cite web|url=http://libscore.com/#React|title=Libscore|work=libscore.com}}</ref>
== History ==
React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.knkjnlknl.
==Notable features==
=== One-way data flow ===
Properties, a set of immutable values, are passed to a component's renderer as properties in its HTML tag. A component cannot directly modify any properties passed to it, but can be passed callback functions that do modify values. This mechanism's promise is expressed as "properties flow down; actions flow up".
=== Virtual DOM ===
Another notable feature is the use of a "virtual [[Document Object Model]]," or "virtual DOM." React creates an in-memory data structure cache,
computes the resulting differences, and then updates the browser's displayed DOM
efficiently.<ref name=workingwiththebrowser>{{cite web|title=Working With the Browser|url=http://facebook.github.io/react/docs/working-with-the-browser.html|website=React}}</ref>
This allows the programmer to write code as if the entire page is rendered on each change while the React libraries only render subcomponents that actually change.
=== JSX ===
React components are typically written in JSX, a JavaScript extension syntax allowing quoting of HTML and using HTML tag syntax to render subcomponents.<ref>{{Cite web|title = JSX in Depth |url = https://facebook.github.io/react/docs/jsx-in-depth.html|accessdate = 2015-11-17}}</ref> HTML syntax is processed into JavaScript calls of the React library. Developers may also write in pure JavaScript. JSX is similar to another extension syntax created by Facebook for PHP, [[XHP]].
=== Architecture beyond HTML ===
The basic architecture of React applies beyond rendering HTML in the browser. For example, Facebook has dynamic charts that render to <canvas> tags,<ref>https://facebook.github.io/react/blog/2013/06/05/why-react.html</ref> and Netflix and PayPal use isomorphic loading to render identical HTML on both the server and client.<ref name=paypal-isomorphic-reactjs>{{cite web|title=PayPal Isomorphic React|url=https://www.paypal-engineering.com/2015/04/27/isomorphic-react-apps-with-react-engine/}}</ref><ref name=netflix-isomorphic-reactjs>{{cite web|title=Netflix Isomorphic React|url=http://techblog.netflix.com/2015/01/netflix-likes-react.html}}</ref>
=== React Native ===
{{See also|WinJS}}
React Native libraries were announced by Facebook in 2015,<ref>https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile/</ref> providing the React architecture to native iOS, Android and UWP<ref>{{cite web |author=Windows Apps Team |date=April 13, 2016 |title=React Native on the Universal Windows Platform |url=https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/ |website=blogs.windows.com |accessdate=2016-11-06}}</ref> applications.
== Future development ==
Project status can be tracked via the core team discussion forum.<ref>{{Cite web|title = Meeting Notes|url = https://discuss.reactjs.org/c/meeting-notes|website = React Discuss|accessdate = 2015-12-13}}</ref> However major changes to React go through the [https://github.com/reactjs/react-future Future of React repo], Issues and [[Pull request|PR]].<ref>{{Cite web|title = reactjs/react-future - The Future of React|url = https://github.com/reactjs/react-future|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = facebook/react - Feature request issues|url = https://github.com/facebook/react/labels/Type:%20Feature%20Request|website = GitHub|accessdate = 2015-12-13}}</ref> This enables the React community to provide feedback on new potential features, experimental APIs and JavaScript syntax improvements.
=== Sub projects ===
The status of the React sub-projects used to be available in the project wiki.<ref>{{Cite web|title = facebook/react Projects wiki|url = https://github.com/facebook/react/wiki/Projects|website = GitHub|accessdate = 2015-12-13}}</ref>
=== Facebook CLA ===
Facebook requires contributors to React to sign the Facebook [[Contributor License Agreement|CLA]].<ref>{{Cite web|title = facebook/react - CONTRIBUTING.md|url = https://github.com/facebook/react/blob/master/CONTRIBUTING.md#contributor-license-agreement-cla|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = Contributing to Facebook Projects|url = https://code.facebook.com/cla|website = Facebook Code|accessdate = 2015-12-13}}</ref>
== Licensing ==
The initial public release of React in May 2013 used a standard [[Apache License|Apache License 2.0]]. In October 2014, React 0.12.0 replaced this with a [[BSD licenses#3-clause|3-clause BSD license]] and added a separate PATENTS text file that permits usage of any Facebook patents related to the software:<ref>{{cite web|title=React CHANGELOG.md|url=https://github.com/facebook/react/blob/master/CHANGELOG.md#0120-october-28-2014|website=GitHub}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, for anyone that makes any claim (including by filing any lawsuit, assertion or other action) alleging (a) direct, indirect, or contributory infringement or inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, (ii) by any party if such claim arises in whole or in part from any software, product or service of Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, or (iii) by any party relating to the Software; or (b) that any right in any patent claim of Facebook is invalid or unenforceable."''</blockquote>
This unconventional clause caused some controversy and debate in the React user community, because it could be interpreted to empower Facebook to revoke the license in many scenarios, for example if Facebook sues the licensee prompting them to take "other action" by publishing the action on a blog or elsewhere. Many expressed concerns that Facebook could unfairly exploit the termination clause or that integrating React into a product might complicate a startup company's future acquisition.<ref>{{cite web|title=A compelling reason not to use ReactJS|first=Austin|last=Liu|url=https://medium.com/bits-and-pixels/a-compelling-reason-not-to-use-reactjs-beac24402f7b|website=Medium}}</ref>
Based on community feedback, Facebook updated the patent grant in April 2015 to be less ambiguous and more permissive:<ref>{{cite web|title=Updating Our Open Source Patent Grant|url=https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. [...] A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim."<ref>{{cite web|title=Additional Grant of Patent Rights Version 2|url=https://github.com/facebook/react/blob/b8ba8c83f318b84e42933f6928f231dc0918f864/PATENTS|website=GitHub}}</ref>''</blockquote>
This second version of the patent grant remains controversial, making use of the library unacceptable for some developers. This is because the document continues to allow Facebook to revoke the right to use the library under Facebook patents in the event that the licensee brings a patent lawsuit against Facebook.<ref>{{cite web|title=Legal Department Did not Allow Use of React|url=https://discuss.reactjs.org/t/legal-department-did-not-allow-use-of-react/3309}}</ref>
==References==
{{Reflist|2}}
==External links==
{{Portal|Free software}}
* List of React resources – [https://github.com/enaqx/awesome-react AwesomeReact]
* Guide for React ecosystem By Pete Hunt - [https://github.com/petehunt/react-howto React howto]
* React vs Angular - [https://www.cleveroad.com/blog/react-vs-angular-ultimate-performance-research-2017 ReactJS vs AngularJS 2 ultimate performance research 2017]
{{JS templating |state=autocollapse}}
{{Rich Internet applications}}
{{Application frameworks}}
{{ECMAScript}}
{{Facebook navbox}}
[[Category:2015 software]]
[[Category:Ajax (programming)]]
[[Category:Facebook software]]
[[Category:JavaScript web frameworks]]
[[Category:Rich Internet application frameworks]]
[[Category:Software using the BSD license]]' |
Unified diff of changes made by edit (edit_diff ) | '@@ -27,5 +27,5 @@
== History ==
-React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.
+React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.knkjnlknl.
==Notable features==
' |
New page size (new_size ) | 12171 |
Old page size (old_size ) | 12161 |
Size change in edit (edit_delta ) | 10 |
Lines added in edit (added_lines ) | [
0 => 'React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.knkjnlknl.'
] |
Lines removed in edit (removed_lines ) | [
0 => 'React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.'
] |
New page wikitext, pre-save transformed (new_pst ) | '{{Infobox software
| name = React
| logo =
| author = Jordan Walke
| developer = [[Facebook]], [[Instagram]] and community
| released = {{Start date and age|2013|3}}
| latest release version = 15.4.0
| latest release date = {{Start date and age|2016|11|16}}<ref>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> <!-- DO NOT CHANGE THIS REFERENCE: the github release page can remain as a static reference for all foreseeable releases-->
| latest preview version =
| latest preview date = <!-- {{Start date and age|2016|04|7}}<ref name='ghrelease'>{{cite web | title= Releases - facebook/react | website=GitHub | url=https://github.com/facebook/react/releases}}</ref> -->
| status = Active
| programming language = [[JavaScript]]
| platform = [[Cross-platform]]
| size = 117 KiB production<br />559 KiB development
| genre = [[JavaScript library]]
| license = [[BSD licenses#3-clause|3-Clause BSD]] with Facebook addendum (not [[Open Source Initiative|OSI-approved]])
| website = {{URL|facebook.github.io/react}}
}}
{{Advert section|date=March 2016}}
'''React''' (sometimes styled '''React.js''' or '''ReactJS''') is an [[open-source software|open-source]] [[JavaScript library]] for building [[user interfaces]].
It is maintained by [[Facebook]], [[Instagram]] and a community of individual developers and corporations.<ref>{{cite web | website=InfoWorld | title=React: Making faster, smoother UIs for data-driven Web apps | url=http://www.infoworld.com/article/2608181/javascript/react--making-faster--smoother-uis-for-data-driven-web-apps.html}}</ref><ref>{{cite web | website=InfoQ | title=Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews | url=http://www.infoq.com/news/2013/06/facebook-react}}</ref><ref>{{cite web | title=JavaScript’s History and How it Led To ReactJS | url=http://thenewstack.io/javascripts-history-and-how-it-led-to-reactjs/ | website=The New Stack}}</ref> According to [[JavaScript]] analytics service [[Libscore]], React is currently being used on the websites of [[Netflix]], [[Imgur]], [[Bleacher Report]], [[Feedly]], [[Airbnb]], [[SeatGeek]], [[HelloSign]], [[Walmart]], and others.<ref>{{cite web|url=http://libscore.com/#React|title=Libscore|work=libscore.com}}</ref>
== History ==
React was created by Jordan Walke, a software engineer at Facebook. He was influenced by [[XHP]], an [[HTML]] component framework for [[PHP]].<ref>{{cite web|title=React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?|url=https://www.quora.com/React-JS-Library/How-was-the-idea-to-develop-React-conceived-and-how-many-people-worked-on-developing-it-and-implementing-it-at-Facebook/answer/Bill-Fisher-17|website=Quora}}</ref> It was first deployed on Facebook's newsfeed in 2011 and later on Instagram.com in 2012.<ref>{{cite web|url=https://www.youtube.com/watch?v=A0Kj49z6WdM|title=Pete Hunt at TXJS}}</ref> It was open-sourced at JSConf US in May 2013. [[#React Native|React Native]], which enables native iOS, Android and [[Universal Windows Platform|UWP]] development with React, was announced at Facebook's React.js Conf in February 2015 and open-sourced in March 2015.knkjnlknl.
==Notable features==
=== One-way data flow ===
Properties, a set of immutable values, are passed to a component's renderer as properties in its HTML tag. A component cannot directly modify any properties passed to it, but can be passed callback functions that do modify values. This mechanism's promise is expressed as "properties flow down; actions flow up".
=== Virtual DOM ===
Another notable feature is the use of a "virtual [[Document Object Model]]," or "virtual DOM." React creates an in-memory data structure cache,
computes the resulting differences, and then updates the browser's displayed DOM
efficiently.<ref name=workingwiththebrowser>{{cite web|title=Working With the Browser|url=http://facebook.github.io/react/docs/working-with-the-browser.html|website=React}}</ref>
This allows the programmer to write code as if the entire page is rendered on each change while the React libraries only render subcomponents that actually change.
=== JSX ===
React components are typically written in JSX, a JavaScript extension syntax allowing quoting of HTML and using HTML tag syntax to render subcomponents.<ref>{{Cite web|title = JSX in Depth |url = https://facebook.github.io/react/docs/jsx-in-depth.html|accessdate = 2015-11-17}}</ref> HTML syntax is processed into JavaScript calls of the React library. Developers may also write in pure JavaScript. JSX is similar to another extension syntax created by Facebook for PHP, [[XHP]].
=== Architecture beyond HTML ===
The basic architecture of React applies beyond rendering HTML in the browser. For example, Facebook has dynamic charts that render to <canvas> tags,<ref>https://facebook.github.io/react/blog/2013/06/05/why-react.html</ref> and Netflix and PayPal use isomorphic loading to render identical HTML on both the server and client.<ref name=paypal-isomorphic-reactjs>{{cite web|title=PayPal Isomorphic React|url=https://www.paypal-engineering.com/2015/04/27/isomorphic-react-apps-with-react-engine/}}</ref><ref name=netflix-isomorphic-reactjs>{{cite web|title=Netflix Isomorphic React|url=http://techblog.netflix.com/2015/01/netflix-likes-react.html}}</ref>
=== React Native ===
{{See also|WinJS}}
React Native libraries were announced by Facebook in 2015,<ref>https://code.facebook.com/posts/1014532261909640/react-native-bringing-modern-web-techniques-to-mobile/</ref> providing the React architecture to native iOS, Android and UWP<ref>{{cite web |author=Windows Apps Team |date=April 13, 2016 |title=React Native on the Universal Windows Platform |url=https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform/ |website=blogs.windows.com |accessdate=2016-11-06}}</ref> applications.
== Future development ==
Project status can be tracked via the core team discussion forum.<ref>{{Cite web|title = Meeting Notes|url = https://discuss.reactjs.org/c/meeting-notes|website = React Discuss|accessdate = 2015-12-13}}</ref> However major changes to React go through the [https://github.com/reactjs/react-future Future of React repo], Issues and [[Pull request|PR]].<ref>{{Cite web|title = reactjs/react-future - The Future of React|url = https://github.com/reactjs/react-future|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = facebook/react - Feature request issues|url = https://github.com/facebook/react/labels/Type:%20Feature%20Request|website = GitHub|accessdate = 2015-12-13}}</ref> This enables the React community to provide feedback on new potential features, experimental APIs and JavaScript syntax improvements.
=== Sub projects ===
The status of the React sub-projects used to be available in the project wiki.<ref>{{Cite web|title = facebook/react Projects wiki|url = https://github.com/facebook/react/wiki/Projects|website = GitHub|accessdate = 2015-12-13}}</ref>
=== Facebook CLA ===
Facebook requires contributors to React to sign the Facebook [[Contributor License Agreement|CLA]].<ref>{{Cite web|title = facebook/react - CONTRIBUTING.md|url = https://github.com/facebook/react/blob/master/CONTRIBUTING.md#contributor-license-agreement-cla|website = GitHub|accessdate = 2015-12-13}}</ref><ref>{{Cite web|title = Contributing to Facebook Projects|url = https://code.facebook.com/cla|website = Facebook Code|accessdate = 2015-12-13}}</ref>
== Licensing ==
The initial public release of React in May 2013 used a standard [[Apache License|Apache License 2.0]]. In October 2014, React 0.12.0 replaced this with a [[BSD licenses#3-clause|3-clause BSD license]] and added a separate PATENTS text file that permits usage of any Facebook patents related to the software:<ref>{{cite web|title=React CHANGELOG.md|url=https://github.com/facebook/react/blob/master/CHANGELOG.md#0120-october-28-2014|website=GitHub}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, for anyone that makes any claim (including by filing any lawsuit, assertion or other action) alleging (a) direct, indirect, or contributory infringement or inducement to infringe any patent: (i) by Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, (ii) by any party if such claim arises in whole or in part from any software, product or service of Facebook or any of its subsidiaries or affiliates, whether or not such claim is related to the Software, or (iii) by any party relating to the Software; or (b) that any right in any patent claim of Facebook is invalid or unenforceable."''</blockquote>
This unconventional clause caused some controversy and debate in the React user community, because it could be interpreted to empower Facebook to revoke the license in many scenarios, for example if Facebook sues the licensee prompting them to take "other action" by publishing the action on a blog or elsewhere. Many expressed concerns that Facebook could unfairly exploit the termination clause or that integrating React into a product might complicate a startup company's future acquisition.<ref>{{cite web|title=A compelling reason not to use ReactJS|first=Austin|last=Liu|url=https://medium.com/bits-and-pixels/a-compelling-reason-not-to-use-reactjs-beac24402f7b|website=Medium}}</ref>
Based on community feedback, Facebook updated the patent grant in April 2015 to be less ambiguous and more permissive:<ref>{{cite web|title=Updating Our Open Source Patent Grant|url=https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/}}</ref>
<blockquote>''"The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Assertion arises in whole or in part from any software, technology, product or service of Facebook or any of its subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. [...] A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, or contributory infringement or inducement to infringe any patent, including a cross-claim or counterclaim."<ref>{{cite web|title=Additional Grant of Patent Rights Version 2|url=https://github.com/facebook/react/blob/b8ba8c83f318b84e42933f6928f231dc0918f864/PATENTS|website=GitHub}}</ref>''</blockquote>
This second version of the patent grant remains controversial, making use of the library unacceptable for some developers. This is because the document continues to allow Facebook to revoke the right to use the library under Facebook patents in the event that the licensee brings a patent lawsuit against Facebook.<ref>{{cite web|title=Legal Department Did not Allow Use of React|url=https://discuss.reactjs.org/t/legal-department-did-not-allow-use-of-react/3309}}</ref>
==References==
{{Reflist|2}}
==External links==
{{Portal|Free software}}
* List of React resources – [https://github.com/enaqx/awesome-react AwesomeReact]
* Guide for React ecosystem By Pete Hunt - [https://github.com/petehunt/react-howto React howto]
* React vs Angular - [https://www.cleveroad.com/blog/react-vs-angular-ultimate-performance-research-2017 ReactJS vs AngularJS 2 ultimate performance research 2017]
{{JS templating |state=autocollapse}}
{{Rich Internet applications}}
{{Application frameworks}}
{{ECMAScript}}
{{Facebook navbox}}
[[Category:2015 software]]
[[Category:Ajax (programming)]]
[[Category:Facebook software]]
[[Category:JavaScript web frameworks]]
[[Category:Rich Internet application frameworks]]
[[Category:Software using the BSD license]]' |
Whether or not the change was made through a Tor exit node (tor_exit_node ) | 0 |
Unix timestamp of change (timestamp ) | 1488286347 |