You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/add-react-to-an-existing-app.md
+38-66Lines changed: 38 additions & 66 deletions
Original file line number
Diff line number
Diff line change
@@ -10,87 +10,59 @@ You don't need to rewrite your app to start using React.
10
10
11
11
We recommend adding React to a small part of your application, such as an individual widget, so you can see if it works well for your use case.
12
12
13
-
While React [can be used](/docs/react-without-es6.html) without a build pipeline, we recommend setting it up so you can be more productive. A modern build pipeline typically consists of:
14
-
15
-
* A **package manager**, such as [Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/). It lets you take advantage of a vast ecosystem of third-party packages, and easily install or update them.
16
-
* A **bundler**, such as [webpack](https://webpack.js.org/) or [Browserify](http://browserify.org/). It lets you write modular code and bundle it together into small packages to optimize load time.
17
-
* A **compiler** such as [Babel](http://babeljs.io/). It lets you write modern JavaScript code that still works in older browsers.
18
-
19
-
### Installing React
20
-
21
-
>**Note:**
22
-
>
23
-
>Once installed, we strongly recommend setting up a [production build process](/docs/optimizing-performance.html#use-the-production-build) to ensure you're using the fast version of React in production.
24
-
25
-
We recommend using [Yarn](https://yarnpkg.com/) or [npm](https://www.npmjs.com/) for managing front-end dependencies. If you're new to package managers, the [Yarn documentation](https://yarnpkg.com/en/docs/getting-started) is a good place to get started.
Both Yarn and npm download packages from the [npm registry](http://npmjs.com/).
42
-
43
-
> Note:
44
-
>
45
-
> To prevent potential incompatibilities, all react packages should use the same version. (This includes `react`, `react-dom`, `react-test-renderer`, etc.)
46
-
47
-
### Enabling ES6 and JSX
48
-
49
-
We recommend using React with [Babel](http://babeljs.io/) to let you use ES6 and JSX in your JavaScript code. ES6 is a set of modern JavaScript features that make development easier, and JSX is an extension to the JavaScript language that works nicely with React.
50
-
51
-
The [Babel setup instructions](https://babeljs.io/docs/setup/) explain how to configure Babel in many different build environments. Make sure you install [`babel-preset-react`](http://babeljs.io/docs/plugins/preset-react/#basic-setup-with-the-cli-) and [`babel-preset-env`](http://babeljs.io/docs/plugins/preset-env/) and enable them in your [`.babelrc` configuration](http://babeljs.io/docs/usage/babelrc/), and you're good to go.
52
-
53
-
### Hello World with ES6 and JSX
54
-
55
-
We recommend using a bundler like [webpack](https://webpack.js.org/) or [Browserify](http://browserify.org/), so you can write modular code and bundle it together into small packages to optimize load time.
56
-
57
-
The smallest React example looks like this:
26
+
### 2. Write your components
58
27
59
28
```js
60
-
importReactfrom'react';
61
-
importReactDOMfrom'react-dom';
29
+
// src/widget.js
30
+
classWidgetextendsReact.Component() {
31
+
render() {
32
+
return<div>Hello, world!</div>;
33
+
}
34
+
}
62
35
63
36
ReactDOM.render(
64
-
<h1>Hello, world!</h1>,
65
-
document.getElementById('root')
37
+
<Widget />,
38
+
document.querySelector('.widget')
66
39
);
67
40
```
68
41
69
-
This code renders into a DOM element with the id of `root`, so you need `<div id="root"></div>` somewhere in your HTML file.
42
+
### 3. Compile with Babel
70
43
71
-
Similarly, you can render a React component inside a DOM element somewhere inside your existing app written with any other JavaScript UI library.
44
+
[Babel][babel] is a tool that converts [JSX][jsx] and future JavaScript syntax into ES5 JavaScript compatible with older browsers.
72
45
73
-
[Learn more about integrating React with existing code.](/docs/integrating-with-other-libraries.html#integrating-with-other-view-libraries)
46
+
_Install `babel`with `yarn` or `npm`_
74
47
75
-
### A Complete Example
76
-
77
-
You can find step-by-step instructions detailing a basic implementation from scratch, including Babel and Webpack setup [here](https://medium.com/@JedaiSaboteur/creating-a-react-app-from-scratch-f3c693b84658).
By default, React includes many helpful warnings. These warnings are very useful in development.
52
+
_Example: compile files in `src` folder to `build`_
82
53
83
-
**However, they make the development version of React larger and slower so you should use the production version when you deploy the app.**
54
+
```shell
55
+
babel --presets=react-app src -d build
56
+
```
84
57
85
-
Learn [how to tell if your website is serving the right version of React](/docs/optimizing-performance.html#use-the-production-build), and how to configure the production build process most efficiently:
58
+
### 4. Add components to page
86
59
87
-
*[Creating a Production Build with Create React App](/docs/optimizing-performance.html#create-react-app)
88
-
*[Creating a Production Build with Single-File Builds](/docs/optimizing-performance.html#single-file-builds)
89
-
*[Creating a Production Build with Brunch](/docs/optimizing-performance.html#brunch)
90
-
*[Creating a Production Build with Browserify](/docs/optimizing-performance.html#browserify)
91
-
*[Creating a Production Build with Rollup](/docs/optimizing-performance.html#rollup)
92
-
*[Creating a Production Build with webpack](/docs/optimizing-performance.html#webpack)
60
+
```html
61
+
<scriptsrc="build/widget.js"></script>
62
+
```
93
63
94
-
### Using a CDN
64
+
<!-- Links: -->
95
65
96
-
If you don't want to use npm to manage client packages, the `react` and `react-dom` npm packages also provide single-file distributions in `umd` folders. See the [CDN](/docs/cdn-links.html) page for links.
0 commit comments