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:

  1. subset of javascript which looks like html but cannot be interpreted by browser.
  2. JSX could produce HTML
  3. 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)的更多相关文章

  1. A Bite Of React(2) Component, Props and State

    component component:用户自己定义的元素 const element = <Welcome name="Sara" />; class Welcome ...

  2. react programming

    So you're curious in learning this new thing called Reactive Programming, particularly its variant c ...

  3. react组件的生命周期

    写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...

  4. 十分钟介绍mobx与react

    原文地址:https://mobxjs.github.io/mobx/getting-started.html 写在前面:本人英语水平有限,主要是写给自己看的,若有哪位同学看到了有问题的地方,请为我指 ...

  5. RxJS + Redux + React = Amazing!(译一)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: https:/ ...

  6. React 入门教程

    React 起源于Facebook内部项目,是一个用来构建用户界面的 javascript 库,相当于MVC架构中的V层框架,与市面上其他框架不同的是,React 把每一个组件当成了一个状态机,组件内 ...

  7. 通往全栈工程师的捷径 —— react

    腾讯Bugly特约作者: 左明 首先,我们来看看 React 在世界范围的热度趋势,下图是关键词“房价”和 “React” 在 Google Trends 上的搜索量对比,蓝色的是 React,红色的 ...

  8. 2017-1-5 天气雨 React 学习笔记

    官方example 中basic-click-counter <script type="text/babel"> var Counter = React.create ...

  9. RxJS + Redux + React = Amazing!(译二)

    今天,我将Youtube上的<RxJS + Redux + React = Amazing!>的后半部分翻译(+机译)了下来,以供国内的同学学习,英文听力好的同学可以直接看原版视频: ht ...

随机推荐

  1. 怕忘记了CSS中position的absolute和relative用法

    CSS2.0中的定位确实有时会把人弄糊涂,所以今天给它记下来,同时供以后查阅.下面写的内容有一部分借鉴了w3cschool和divcss5这两个官方网站,在此处特别的说明一下 CSS2.0中posit ...

  2. c# 获取 Apk ,Aar 文件包名

    最近项目有个需求,需要拿到前端上传的Apk或者Aar文件里面的包名. 在这里贡献出来,方便有需求的小伙伴. 项目是 asp.net core 2.2 需要安装 nuget : AndroidXml S ...

  3. supermap idesktop连接oraclesptial数据源

    1.要使用相同的版本,如iServer 9D, iDesktop9D ,32位的 plsql,32位的 oracleinstance_client 11g 2.当时遇到的问题是使用oracleinst ...

  4. 【记录】spring/springboot 配置mybatis打印sql

    ======================springboot mybatis 打印sql========================================== 方式 一: ##### ...

  5. 2019-8-31-C#-条件编译

    title author date CreateTime categories C# 条件编译 lindexi 2019-08-31 16:55:58 +0800 2019-07-18 15:27:1 ...

  6. python类中方法__str__()和__repr__()简单粗暴总结

    在交互式模式下,类中同时实现__str__()和__repr__()方法: 直接输入实例名称显示repr返回的类容: 用print打印实例名称显示str返回的内容: >>> clas ...

  7. C# List和DataTable的相互转换

    1.List转DataTable /// <summary> /// list to datatable /// </summary> /// <typeparam na ...

  8. matplot绘图无法显示中文的问题

    手动添加: from pylab import * mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体 mpl.rcParams['axes.un ...

  9. (ACM模板)不定长数组vector

    #include<iostream> #include<cstdio> #include<vector> #include<algorithm> usi ...

  10. .net core webapi添加swagger

    依赖项——右键——管理NuGet程序包——浏览——输入以下内容 Install-Package Swashbuckle.AspNetCore -Pre 双击Properties——点击生成——勾选XM ...