- React Components
- Christopher Pitt
- 402字
- 2021-07-09 19:34:44
Compiling modern JavaScript
It's time for us to look at how to compile ES6 and JSX code into formats that most browsers can read. Create a folder for your React components and run the following commands inside it:
$ npm init $ npm install --save browserify babelify $ npm install --save react react-dom
The first command will kick off a series of questions, most of which should have reasonable defaults. The second command will download a builder and a cross-compiler for your ES6 code. Place the following component in a file called page.js
:
import React from "react"; export default class Page extends React.Component { render() { return <p>{this.props.content}</p>; } }
There are a couple of important differences between this and the previous Page
component. We import the main React
object from within the node_modules
folder. We also export the class definition so that importing this file immediately references this class. It's a good idea to limit each file to a single class. It's also a good idea to make each file define types or use them. We use this class in main.js
:
import React from "react"; import ReactDOM from "react-dom"; import Page from "./page"; ReactDOM.render( <Page content="Welcome to my site!" />, document.querySelector(".react") );
This code imports React
and ReactDOM
from within the node_modules
folder, so we can render the Page
class. Here we're referencing an element in the DOM again. We can use this JavaScript within an HTML page:
<!doctype html> <html lang="en"> <body> <p class="react"></p> </body> <script src="main.dist.js"></script> </html>
The final step is to compile the ES6/JSX code in main.js
to ES5-compatible code in main.dist.js
:
$ alias browserify=node_modules/.bin/browserify $ browserify -t babelify main.js -o main.dist.js
The first command creates a shortcut to the browserify
command in the node_modules/.bin
folder. This is useful for repeated calls to browserify
.
Note
If you want to keep that alias around, be sure to add it to your ~/.bashrc
, ~/.zshrc
or ~/.profile
file.
The second command starts a build. Browserify will combine all imported files into a single file, so they can be used in a browser.
We use the babelify
transformer, so the ES6 code becomes ES5-compatible code. Babel supports JSX, so we don't need additional steps for that. We specify main.js
as the file to transform and main.dist.js
as the output file.
Note
If you want to compile React and ReactDOM into their own file, you can exclude them with the -x
switch. Your command should be something like this:
browserify main.js -t babelify -x react -x react-dom --outfile main.dist.js
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Mastering Objectoriented Python
- Responsive Web Design with HTML5 and CSS3
- 你不知道的JavaScript(中卷)
- 網站構建技術
- Microsoft Azure Storage Essentials
- MySQL入門很輕松(微課超值版)
- iPhone應用開發(fā)從入門到精通
- Kubernetes進階實戰(zhàn)
- OpenStack Networking Essentials
- 多媒體技術及應用
- C語言程序設計
- Java EE 8 and Angular
- 數據科學中的實用統計學(第2版)
- Clojure Web Development Essentials