美文网首页
React入门

React入门

作者: 五月的约修亚 | 来源:发表于2017-03-10 17:10 被阅读0次

JSX语法

JSX 的基本语法规则

遇到HTML标签(以 < 开头),就用HTML规则解析;遇到代码块JavaScript(以 { 开头),就用JavaScript规则解析,比如

var names = ['Alice', 'Emily', 'Kate'];
ReactDOM.render(
  <div>
  {
    names.map(function (name) {
      return <div>Hello, {name}!</div>
    })
  }
  </div>,
  document.getElementById('example')
);

React的组件以大写字母开头,原生的HTML标签以小写字母开头。
你可以通过React.createElement来创建一个树。第一个参数是标签,第二个参数是一个属性对象,第三个是子节点。

var child = React.createElement('li', null, 'Text Content');
var root = React.createElement('ul', { className: 'my-list' }, child);
React.render(root, document.body);

js作为属性值和子节点才需要用大括号{}括起来,因为JSX最终会转换成JS输出,所以表达式只能用简单行内运算符如三母运算符,而不能使用if else

//属性表达式
// 输入 (JSX):
var person = <Person name={window.isLoggedIn ? window.name : ''} />;
// 输出 (JS):
var person = React.createElement(
  Person,
  {name: window.isLoggedIn ? window.name : ''}
);
  
//子节点表达式
// 输入 (JSX):
var content = <Container>{window.isLoggedIn ? <Nav /> : <Login />}</Container>;
// 输出 (JS):
var content = React.createElement(
  Container,
  null,
  window.isLoggedIn ? React.createElement(Nav) : React.createElement(Login)
);

样式

style后传入一个js的对象而不是css字符串,最外层的{}表示是js,内层的{}表示为对象

<span style={{color:'red'}}></span>

事件

React组件的事件和属性都是驼峰的形式,比如:

<!-- 原html写法 -->
<form onsubmit="xxx"></form>
<!-- react写法 -->
render: function(){
return
<form onSubmit="xxx"></form>
}

Refs

我们利用 ref 属性给子组件命名,通过this.refs引用真实的DOM节点。

var CommentForm = React.createClass({
  handleSubmit: function(e) {
    this.refs.author.value = '';
    return;
  },
  render: function() {
    return (
      <form className="commentForm" onSubmit={this.handleSubmit}>
        <input type="text" placeholder="Your name" ref="author" />
      </form>
    );
  }
});

变量

react变量似乎必须要加var,存疑?

数据流

React中数据是沿着组件树通过props传递,从上到下(最外层到最内层)单向流动的。

哪些组件应该有state

常用的模式是创建多个只负责渲染数据的无状态(stateless)组件,在它们的上层创建一个有状态(stateful)组件并把它的状态通过props传给子级。这个有状态的组件封装了所有用户的交互逻辑,而这些无状态组件则负责声明式地渲染数据。

参考:
关于JSX语法
深入理解JSX
react中文版
react入门教程

相关文章

  • react+webpack项目实际开发应用

    react+webpack项目实际开发应用 在《react入门》和《react入门提高》中我讲了,react的基础...

  • react+webpack项目实际开发应用

    react+webpack项目实际开发应用 在《react入门》和《react入门提高》中我讲了,react的基础...

  • react+webpack项目实际开发应用

    react+webpack项目实际开发应用 在《react入门》和《react入门提高》中我讲了,react的基础...

  • React Native:从入门到原理

    React Native:从入门到原理 React Native:从入门到原理

  • React Native学习资料

    React 入门实例教程React-Native入门指南Flex 布局教程:语法篇React Native探索(二...

  • React Native

    JavaScript 标准参考教程(alpha)ECMAScript 6入门 React 入门实例教程React ...

  • React 实践(一)

    参考:《React 入门实例教程--阮一峰》、《React 学习教程--众成翻译》。React 框架入门学习摘录。...

  • awesome-react-native

    React React 中文文档一定要看官方文档 React 入门实例教程阮一峰老师出品,最好的 react 入门...

  • 慕课视频

    免费 《Web安全-XSS》《ReactNative基础与入门》《React入门》《在React中使用Redux数...

  • React入门-001

    +++Categories = ["React",]Tags = ["React","入门",]date = "2...

网友评论

      本文标题:React入门

      本文链接:https://www.haomeiwen.com/subject/tykogttx.html