React 教程 在线

646React JSX

关于React注释的问题:

1、在标签内部的注释需要花括号

2、在标签外的的注释不能使用花括号

ReactDOM.render(
    /*注释 */
    <h1>孙朝阳 {/*注释*/}</h1>,
    document.getElementById('example')
);

645React 元素渲染

改版写法:

  • 1. 使用 ES6 类写法,用 this.props.属性名 来取值。
  • 2. 可以多层 props 来传值,在 ReactDOM.render 定义属性值,传给调用方法 App,再在调用的ES6类调用中用 props.属性直接赋值过去。
var myStyle = {color:'red',textAlign:'center'}

class Name extends React.Component {
  render() {
    return <h1 style={myStyle}>网站名称:{this.props.name}</h1>;
  }
}
class Url extends React.Component {
  render() {
    return <h1>网站地址:{this.props.url}</h1>;
  }
}
class Nickname extends React.Component {
  render() {
    return <h1>网站地址:{this.props.nickname}</h1>;
  }
}

function App(props) {
    return (
        <div>
            <Name name={props.name}/>
            <Url  url={props.url}/>
            <Nickname  nickname={props.nickname}/>
        </div>
    );
}

多个属性的传入注意不用逗号或分号隔开而是空格符隔开:

ReactDOM.render(
     <App name={"小鸟启蒙"} url={"http://www.facesoho.com"} nickname={"facesoho"}/>,
    document.getElementById('example')
);

644React 安装

React 代码的书写格式和以前的 JS 有很大的不同,下面通过对这段代码进行分析了解一下他。

以前使用JS 定义一个变量使用 var 现在用 const:

const div = document.createElement('div');

ReactDOM.render(...) 是渲染方法,所有的 js,html 都可通过它进行渲染绘制,他又两个参数,内容和渲染目标 js 对象。

内容就是要在渲染目标中显示的东西,可以是一个React 部件,也可以是一段HTML或TEXT文本。渲染目标JS对象,就是一个DIV或TABEL,或TD 等HTML的节点对象。

ReactDOM.render(<App />, div);

unmountComponentAtNode() 这个方法是解除渲染挂载,作用和 render 刚好相反,也就清空一个渲染目标中的 React 部件或 html 内容。

ReactDOM.unmountComponentAtNode(div);

643React 安装

create-react-app 执行慢的解决方法:

在使用 create-react-app my-app 来创建一个新的React应用,在拉取各种资源时,往往会非常慢,一直卡在那:

fetchMetadata: sill mapToRegistry uri http://registry.npmjs.org/whatwg-fetch

可以看到资源还是使用了 npmjs.org,解决方法是换成淘宝的资源:

$ npm config set registry https://registry.npm.taobao.org
-- 配置后可通过下面方式来验证是否成功
$ npm config get registry
-- 或 npm info express