2019独角兽企业重金招聘Python工程师标准>>>

之前一直是写的jsp页面,应为项目需要,最近开始学习react,有问题请多指教

声明式

React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。

以声明式编写UI,可以让你的代码更加可靠,且方便调试。

组件化

创建好拥有各自状态的组件,再由组件构成更加复杂的界面。

无需再用模版代码,通过使用JavaScript编写的组件你可以更好地传递数据,将应用状态和DOM拆分开来。

一次学习,随处编写

无论你现在正在使用什么技术栈,你都可以随时引入 React 开发新特性。

React 也可以用作开发原生应用的框架 React Native.

组件

react组件使用一个名为render()的方法,接收数据作为输入,输出页面中对应展示的内容。

class HelloMessage extends React.Component {render() {return (<div>Hello {this.props.name}</div>);}
}ReactDOM.render(<HelloMessage name="Taylor" />,mountNode
);

上面这个示例中类似XML的写法被称为JSX. 输入的数据通过 this.props 传入 render() 方法。

react-dom react是虚拟dom(文档对象模型),reactDOM的作用就是将虚拟dom渲染成实际DOM,reactDOM其它作用后面在看,自己暂时没看。

this.props 访问传入数据

this.state 访问内部状态,通过this.state获取的数据改变后,组件会调用render()方法重新渲染页面

下面这个官方demo中的应用

使用props和state 创建一个ToDo应用

class TodoApp extends React.Component {constructor(props) {super(props);this.state = { items: [], text: '' };this.handleChange = this.handleChange.bind(this);this.handleSubmit = this.handleSubmit.bind(this);}render() {return (<div><h3>TODO</h3><TodoList items={this.state.items} /><form onSubmit={this.handleSubmit}><inputonChange={this.handleChange}value={this.state.text}/><button>Add #{this.state.items.length + 1}</button></form></div>);}handleChange(e) {this.setState({ text: e.target.value });}handleSubmit(e) {e.preventDefault();if (!this.state.text.length) {return;}const newItem = {text: this.state.text,id: Date.now()};this.setState(prevState => ({items: prevState.items.concat(newItem),text: ''}));}
}class TodoList extends React.Component {render() {return (<ul>{this.props.items.map(item => (<li key={item.id}>{item.text}</li>))}</ul>);}
}ReactDOM.render(<TodoApp />, mountNode);

在组件中使用第三方库

直接引入 import XXX from xxxx

根据官方文档中的入门教程开发一个井字游戏

转载于:https://my.oschina.net/u/3643058/blog/3038988

一起学react day1相关推荐

  1. 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)

    手挽手带你学React入门四档,用人话教你react-redux,理解redux架构,以及运用在react中.学完这一章,你就可以开始自己的react项目了. 之前在思否看到过某个大神的redux搭建 ...

  2. 从零学React Native之13 持久化存储

    数据持久化就是指应用程序将某些数据存储在手机存储空间中. 借助native存储 这种方式不言而喻,就是把内容传递给native层,通过原生API存储,详见从零学React Native之05混合开发 ...

  3. node都会 react_学react需要node吗

    学react需要node吗 学习react不需要安装node,react.js和node.js没有太大的关联性.完全可以独立的学习react.js. 但我们通常都会使用react提供的脚手架搭建项目结 ...

  4. 手挽手带你学React:三档 React-router4.x的使用

    手挽手带你学React入门三档,带你学会使用Reacr-router4.x,开始创建属于你的React项目 什么是React-router React Router 是一个基于 React 之上的强大 ...

  5. 有了vue为什么还学react?

    有了vue为什么还学react?因为react可弥补vue的不足.下面本篇文章就来给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. vue的优缺点 vue是Evan Y ...

  6. 小白学react之页面BaseLayout框架及微信的坑

    上一篇<小白学react之SASS实战>我们学习了如何通过运用sass来为我们的应用页面"上色",加入css的支持. 但是我们到现在为止,每个页面的标题还是系统默认的, ...

  7. 会Vue还有必要学React吗?

    这里说一下我的切身感受,为什么说学了Vue还要学React. Vue我有三年的开发经验,写过3个大型项目和其他的一些中小型项目,以前我一直觉得只要是能解决问题,用什么框架都一样,我把Vue学到极致就可 ...

  8. 跟我一起学 React + dva + Mockjs(9 个视频)

    跟我一起学 React + dva + Mockjs(9 个视频) 跟我一起学 React + dva + Mockjs #1 课程介绍「04:21」 跟我一起学 React + dva + Mock ...

  9. 小白学react之网页获取微信用户信息

    通过上一篇<小白学react之EJS模版实战>我们学习了怎样通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划.去 ...

最新文章

  1. 嵌入式开发都需要会些什么
  2. node mysql批量写入_如何使用node.js在MySQL中进行批量插入
  3. 阿里云发布勒索病毒专杀工具:一键修复 彻底查杀
  4. softmax函数_干货 | 浅谈 Softmax 函数
  5. POJ 1811 Prime Test
  6. 【并查集】Union Find
  7. mockito 外部接口_mockito – Spring批处理作业的端到端测试用例
  8. phpcms url伪静态
  9. 弹簧管压力表设计报告
  10. 我终于有自己的专业技术博客了
  11. 017 打渔晒网问题
  12. 微信Python自动回复代码
  13. 用Kindle阅读PDF最简单的3个方法!
  14. 微信小程序——获取用户的运动步数
  15. parrot linux iso下载,Parrot Security OS 4.0发布下载,面向安全的操作系统
  16. Android文字广告(Textview上下滚动),使用TextSwitcher控件的完整实现
  17. c++重写卷积网络的前向计算过程,完美复现theano的测试结果
  18. UML图之五——时序图
  19. 21届秋招中国银行软开中心信息科技岗拿offer经历
  20. python+pyqt5+mysql设计图书管理系统(1)- 数据库

热门文章

  1. golang中的panic
  2. 十六进制转换为十进制的效率问题
  3. char s[] 和 char *s 的区别
  4. static的三种用法,定义静态变量,静态函数,静态代码块!
  5. linux网络编程二:基础socket, bind, listen, accept, connect
  6. Java设计模式—责任链模式
  7. 几个常用的eclipse快捷键
  8. 技术久了,偶尔放松下吧,看看这些小样,很美好!
  9. [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品
  10. 黄聪:buffer overflow detected问题解决及gcc-4.1安装