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, divh3and p in browser. But divh3 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. package.json中dependencies 与devDependencies 的区别

    首先,dependencies中安装的依赖是生产环境的依赖,即项目要运行所必须安装的包:devDependencies中安装的的依赖是开放环境的依赖,即在开发项目时需要安装的依赖. 其次,在安装依赖的 ...

  2. LocalDateTime代替Date

    为什么需要LocalDate.LocalTime.LocalDateTime Date如果不格式化,打印出的日期可读性差 Tue Sep 10 09:34:04 CST 2019 使用SimpleDa ...

  3. Centos Docker 安装 Apache Guacamole

    经常在ubuntu上折腾,偶尔在centos来也来玩一把吧 1.安装DOCKER cd /etc/yum.repos.d wget https://download.docker.com/linux/ ...

  4. 《MySQL实战45讲》学习笔记1——MySQL的基础架构

    在<极客时间>订阅了<MySQL实战45讲>专栏,总觉得看完和没看一样

  5. php 无线分类 根据子级找父级

    public function transform($item){ //查询数据 $position = AdminAccess::where('id',$item)->first(); $re ...

  6. nginx部署angular

    官方部署教程 本文将angular官网的示例项目 heroes(英雄指南) 部署到nginx. 使用angular cli编译项目 ng build 执行完成后会生成一个 dist 目录. 服务器配置 ...

  7. Windows下载安装RabbitMQ教程

    原文链接:http://www.studyshare.cn/software/details/1171/0一.下载 1.下载Erlang 官网下载:去下载 百度网盘下载:去下载  提取码:m1q0 2 ...

  8. Mybatis源码解析(四) —— SqlSession是如何实现数据库操作的?

    Mybatis源码解析(四) -- SqlSession是如何实现数据库操作的?   如果拿一次数据库请求操作做比喻,那么前面3篇文章就是在做请求准备,真正执行操作的是本篇文章要讲述的内容.正如标题一 ...

  9. drf--ModelSerializers序列化

    目录 drf--ModelSerializers序列化 项目准备 配置 settings.py 路由 多表设计 表关系分析 创建models 模型序列化 自定义模型序列化 api/serializer ...

  10. dubbo循序渐进 - 使用Docker安装Nexus

    docker search nexus docker pull docker.io/sonatype/nexus3 mkdir -p /usr/local/nexus3/nexus-data /usr ...