Getting started with react.js: basic concept of React component

1 What is React.js

React, or React.js is an open source javascript framework from Facebook. React.js is ideal for doing view rendering work in large scale or single page application (SPA). That is, React works as the V in MVC.

2 How React works

The main concept of React is component. A React component can be composed of React components and ReactElements. Following the React way, you divide your app into several components according to function and responsibility.

React components and ReactElements are used as Virtual DOM, which looks like the markup of real HTML DOM elements.

Virtual DOM (components and ReactElements) syntax will be compiled and translated into plain javascript codes, which will render real HTML DOM elements in browser.

3 Write a React component

As mentioned above, two things are required to write and run a React component.

  • React.js
  • babel, a translator, can translate ECMAScript 6 codes and Virtual DOM syntax to ECMAScript 5 codes, which can be run in all modern browsers.

For simplicity, we're going to use React and babel scripts hosted by free CDN.

 

Create a HelloWorld component which is responsible for rendering a HTML h3 tag and a HTML p tag. Then mount the HelloWorld component to div tag whose id is app.

 

Pay attention to type attribute of script tag. Its vaule is text/babel, which means that the codes should be processed and translated by babel.

Note: The net result of running above code snippets is that React will render real HTML DOM tags, div, h3and p in browser. But div, h3 and p in above codes are not real HTML DOMs, they are also virtual DOMs. They are also React elements, that is ReactElement exactly in React's eyes.

Take the <h3>Hello</h3> element in above render() function as an example, React.js will create a ReactElement essentially. Equivalently, the behind the scenes code are as follows.

 

As you can see, a react component can be embedded as a virtual DOM within another component. For another example, you can give a root component, e.g. App, and then use all sub components and ReactElements within this root.

 

4 CSS class and inline styles of React component

The usual way of adding CSS class name and inline styles will not take effect in React component.

 

The inline style color:blue; and CSS class greet not only won't work, but will raise javascript error. (See it in javascript console of developer tool in your browser.)

Just as I have said, h3 and p here are ReactElements instead of real HTML DOM elements.

The correct way to set a CSS class name is to use className property of React components or ReactElements.

Likewise, inline CSS styles should be wrapped as an object and passed to the style property of React components.

 

Alternatively, if the inline styles are long and complex, you can predefine styles as a variable.

 

Note that the CSS property name should be written in CamelCase way, just as the way in plain javascript.

 

5 Browser plugin: React developer tool

You can install browser plugin React developer tool for purpose of debugging.

https://www.codevoila.com/post/38/react-tutorial-basic-concept-of-react-component

React Tutorial: Basic Concept Of React Component---babel, a translator的更多相关文章

  1. React tutorial

    https://www.algolia.com Build Unique Search ExperiencesHosted Search API that delivers instant and r ...

  2. [React Native] Build a Github Repositories component

    Nav to Repos component from Dashboard.js: goToRepos(){ api.getRepos(this.props.userInfo.login) .then ...

  3. [React] Preventing extra re-rendering with function component by using React.memo and useCallback

    Got the idea form this lesson. Not sure whether it is the ncessary, no othere better way to handle i ...

  4. React 与 React Native 底层共识:React 是什么

    此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React 与 React Native 结合学习的方法,此小节主要介绍 React 的底层原理与 ...

  5. 2、手把手教React Native实战之从React到RN

    ###React简介 RN是基于React设计,了解React有助于我们开发RN应用: React希望将功能分解化,让开发变得像搭积木一样,快速而且可维护 React主要有如下3个特点: *作为UI( ...

  6. (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去

    原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...

  7. react用脚手架创建一个react单页面项目,react起手式

    官网地址:https://react.docschina.org/ 确保本地安装了Node.js node的版本大于8.10    npm的版本大于5.6 1.在本地的某个位置创建一个文件夹,执行以下 ...

  8. 使用react搭建组件库:react+typescript+storybook

    前期准备 1. 初始化项目 npx create-react-app react-components --template typescript 2. 安装依赖 使用哪种打包方案:webpack/r ...

  9. React 也就这样 01——React 元素的创建和渲染

    React 是一个用于构建用户界面的 JavaScript 库 它包括两个库:react.js 和 react-dom.js react.js:React 的核心库,提供了 React.js 的核心功 ...

随机推荐

  1. python 基础 -- python 模块

    ---------    python  模块 一个文件就是一个模块 作用: 模块可以定义函数.类和变量     模块里也能包含可执行的代码 引用模块的写法: import 模块名 from 模块名 ...

  2. [转帖]分布式一致性协议介绍(Paxos、Raft)

    分布式一致性协议介绍(Paxos.Raft) https://www.cnblogs.com/hugb/p/8955505.html  两阶段提交 Two-phase Commit(2PC):保证一个 ...

  3. 在spring中使用Hibernate5

    目录 1. Overview 2. Spring Integration 3. Maven Dependencies 4. Configuration 4.1. Using Java Configur ...

  4. pychram 激活码

    转自博客:https://blog.csdn.net/may_ths/article/details/84032217 激活码到期时间: 2020.06 K6IXATEF43-eyJsaWNlbnNl ...

  5. Spark Core知识点复习-2

    day1112 1.spark core复习 任务提交 缓存 checkPoint 自定义排序 自定义分区器 自定义累加器 广播变量 Spark Shuffle过程 SparkSQL 一. Spark ...

  6. 如何选择CPU

    一.品牌: 选择哪家公司的处理器,AMD公司和inter公司的处理器相比较,AMD在三维制作.游戏应用.和视频处理方面突出,inter的处理器在商业应用.多媒体应用.平面设计方面有优势,性能方面,同档 ...

  7. 『正睿OI 2019SC Day4』

    总结 今天是一场欢乐的\(ACM\)比赛,于是我队得到了全场倒数的好排名. 好吧,其实还是怪自己不能怪队友啦.对于\(ACM\),可能最主要的还是经验不足,导致比赛的时候有点紧张.虽然队友为了磕一道题 ...

  8. 基于Dapper的开源LINQ扩展,且支持分库分表自动生成实体二

    LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...

  9. asp.net图片浏览器效果

    技术来源于同学会实践 前台设计 <%@ Page Language="C#" AutoEventWireup="true" CodeFile=" ...

  10. 有关MFC类与其窗口句柄

    Attach,其实就是让一个CWnd对象的HWND成员指向这个窗口句柄.这就是Attach主要完成的任务. Detach.如前所述,WNDCLASS其实和CWnd根本没有什么关系.它们之间只是通过CW ...