A Bite Of React(1)
react:
component and views : produce html abd add them on a page( in the dom)
<import React from 'react'> // core react library, know how to work with component. Create or manage a Dom
<import ReactDOM from 'react-dom'> //render component to dom const App = function(){
return <div>HI!</div>
}; // this is a component class, could produce a lot of instance.
- ES6
const: ES6 syntax, declare a variable. And which means it won't change because it is constant
JSX:
- subset of javascript which looks like html but cannot be interpreted by browser.
- JSX could produce HTML
- JSX could be compiled into vanilla javascript( which means plain JS without any additional libraries)
ReactDOM.render(<App />, document.querySelector('.container')); //render component into dom
// transpire would translate JSX into javascript
// <App />is a simple instance of component App
- functional based component: take in some info and give out some JSX(can contain some class based component)
const App1 = () => {
return (
<div>
<SearchBar />
</div>;
);
}
// => equals to keyword:this
- class based component: react user events, keep track of state from render pass to render pass.
每一个class based component 都有一个state object,state is a plain javascript object that used to record and react to user events.
如果state发生了改变,则这个component会将这个改变render到dom中。
我们把不同的component放在不同的文件中,由于文件之间彼此独立,所以我们需要declare the relationships between files.
- event handeler:每当事件触发时就会被triggered
on+element+event(onChange)
class SearchBar extends React.Component {
constructor(props) {//constructor初始化
super(props);//super调用react.component中的初始化方法
this.state = {term: ''}; //create a new object and pass it to state(只有在)
//functional components dose't have;
}
render() { //render function must return some JSX
return (
<div>
<input onChange={event => this.setState({ term: event.target.value})}/>//event handler, 用this.setState来改变state
Value of the input: {this.state.term}//通过{}来引用值
</div>
);
//event
- controlled components
state tell the input what it should be
1 render instance of search bar 2 constructor called to new a instance 3 the component renders, the initial value of the input is the is the term.
4 wait for the event, eventhandler changed the state is changed.But the input value hasn't changed. 5 when the render method is used again , then the value has changed by the state.
render() { //render function must return some JSX
return (
<div>
<input
value = {this.state.term} //controlled component value set by state
onChange={event => this.setState({ term: event.target.value})}/>
</div>
);
//eventHandeler would be triggered whenever the event occurs
}
- downward data flow: most parent component responsible for fetching data
so index.js App should be responsible for fetching data. And all the other
use state to
A Bite Of React(1)的更多相关文章
- A Bite Of React(2) Component, Props and State
component component:用户自己定义的元素 const element = <Welcome name="Sara" />; class Welcome ...
- react programming
So you're curious in learning this new thing called Reactive Programming, particularly its variant c ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 十分钟介绍mobx与react
原文地址:https://mobxjs.github.io/mobx/getting-started.html 写在前面:本人英语水平有限,主要是写给自己看的,若有哪位同学看到了有问题的地方,请为我指 ...
- RxJS + Redux + React = Amazing!(译一)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...
- React 入门教程
React 起源于Facebook内部项目,是一个用来构建用户界面的 javascript 库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内 ...
- 通往全栈工程师的捷径 —— react
腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ...
- 2017-1-5 天气雨 React 学习笔记
官方example 中basic-click-counter <script type="text/babel"> var Counter = React.create ...
- RxJS + Redux + React = Amazing!(译二)
今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...
随机推荐
- Codeforces 770C Online Courses In BSU (DFS)
<题目链接> 题目大意:给定$n$个任务,其中有$m$个主线任务,然后$n$个任务中,每个任务都有可能有一个list,表示完成这个任务之前必须要完成的任务,然后现在让你找出,完成这$m$个 ...
- AJAX 获取Servlet文件路径
下面均不行: xmlRes.open("get","edu/hust/ajax/TestServlet",true); xmlRes.open("ge ...
- Git相关命令整理
git config --global user.name //配置姓名git config --global user.email //配置邮箱git config --list //查看配置 ...
- JS中的Boolean数据类型
Boolean布尔数据类型 只有两个字面值:true和false,这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0. 把其他类型转换为布尔类型 只有0.NaN.''.n ...
- Java JNA (三)—— 结构体使用及简单示例
JNA简介 JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna).JNA提供一组Java工具类 ...
- 20180209-os模块
下面将学习关于os模块的相关操作 项目练习的目录结构如下:所有的操作都是基于os_exercise.py模块 1.获取当前的Python脚本的工作目录路径 os.getcwd() # 1.获取当前目录 ...
- 形象生动的SpringBoot和SpringMVC的区别
spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等 ...
- Django--Auth模块使用
1.Auth模块介绍 1.1 Auth模块是Django自带的用户认证模块,用于处理用户账户.群组.许可和基于cookie的用户回话 Django的认证系统主要包括下面几个部分 1.用户 2.许可 3 ...
- https原理和如何配置https
参考:https://blog.51cto.com/11883699/2160032 上面说的已经很好地,我这里简单做个总结: 在网上我们做数据交互时候一般用的http协议,但是这种方式会使得交互内容 ...
- 数据库与缓存:2.Redis数据库的基本知识
1.属于什么类型的数据库 not only sql 非关系型数据库,与传统的关系型数据库不同,存储形式都是kv形式. 2.特点 几乎不支持事务,key-value形式存储,支持队列和缓存(可以设置数 ...