学习react对于新手来说,还没有学react往往就会被webpack,npm等搞的晕头转向,所以我们今天就从最简单的方式入手

<script src="react.js"></script>     //核心文件
<script src="react-dom.js"></script> //用于渲染dom节点

首先在页面中引入这2个文件

<div id="box"></div>
<script src="react.js"></script>
<script src="react-dom.js"></script>
<script type="text/javascript">
ReactDOM.render( //核心方法,接收三个参数,
"hello", //1,内容
document.body, //2,接收的容器
function(){ //3,渲染完成的回掉
console.log("render done");
}
);
//Uncaught Error: ReactDOM.render(): Invalid component element. Instead of passing a string like 'div', pass React.createElement('div') or <div />.
</script>

调用react的核心方法ReactDOM.render方法,运行后,我们发现程序报错了,错误信息的意思就是,我们不能用像‘div’这样的字符串作为内容的参数,我们可以用像React.createElement('div')或者</div>这种标签的形式(标签的形式其实就是jsx语法)

我们先试一试第一种方式

var RDom = React.createElement('h2');
console.log( RDom );
ReactDOM.render(
RDom,
document.body
) //Warning: render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.

这时候我们发现h2这个标签确实是被渲染进了body里面,但是控制台报了一个警告信息,大概意思就是不能用body作为容器

var RDom = React.createElement('h2');
ReactDOM.render(
RDom,
document.getElementById("box")
)

这时候我们发现警告信息没有了,且div里面渲染进了一个h2标签,其实React.createElement();是接收三个参数的,第一个参数表示标签,第二个参数表示传的参数,第三个参数表示标签里面的内容

var RDom = React.createElement('h2',null,'sadfisdfisd');
ReactDOM.render(
RDom,
document.getElementById("box")
)

那如果我们想在h2标签中创建一个div呢

var RDom = React.createElement('h2',null,React.createElement('div',null,'我是div'));
ReactDOM.render(
RDom,
document.getElementById("box")
)

我们看到是这种层层嵌套的关系,那如果有十层八层的写起来就太麻烦了,这时候就该jsx语法上场了

铛铛铛。。。。

<script src="browser.min.js"></script>

在页面中引入brower.js,它就是将jsx语法编译成js

同时我们要修改script标签中的type属性,像这样

<script type="text/babel">

我们来看看jsx的威力

ReactDOM.render(
<h2>
<div title="123">
<div>我是jsx语法创建的</div>
</div>
</h2>,
document.getElementById("box")
)

就是如此简单,像写html一样

React系列,初识的更多相关文章

  1. react系列从零开始-react介绍

    react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到w ...

  2. React 系列教程 1:实现 Animate.css 官网效果

    前言 这是 React 系列教程的第一篇,我们将用 React 实现 Animate.css 官网的效果.对于 Animate.css 官网效果是一个非常简单的例子,原代码使用 jQuery 编写,就 ...

  3. 从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...

  4. 从 0 到 1 实现 React 系列 —— 5.PureComponent 实现 && HOC 探幽

    本系列文章在实现一个 cpreact 的同时帮助大家理顺 React 框架的核心内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/PureComponent/HOC/...) ...

  5. 从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...

  6. 从 0 到 1 实现 React 系列 —— 3.生命周期和 diff 算法

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...

  7. 从 0 到 1 实现 React 系列 —— 2.组件和 state|props

    看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...

  8. react系列笔记1 用npx npm命令创建react app

    react系列笔记1 用npx npm命令创建react app create-react-app my-app是开始构建新的 React 单页应用程序的最佳方式.它已经为你设置好了开发环境,以便您可 ...

  9. react系列教程

    这个系列将从基础语法讲起,把react全家桶都讲到,然后到具体的使用,最后完成后,会写一个完整的demo. 前置要求: 基本的CSS,JS要熟练. 部分ES6语法需要了解.可以参考下面提到的阮一峰老师 ...

  10. React系列之--props属性

    版权声明:本文为博主原创文章,未经博主允许不得转载. PS:转载请注明出处作者:TigerChain地址:http://www.jianshu.com/p/fa81cebac3ef本文出自TigerC ...

随机推荐

  1. Idea控制台中文乱码

    在菜单栏找到”run->editconfigration” 找到”server”选项卡 设置 vm option为 -Dfile.encoding=utf-8

  2. linux中安装cx_Oracle

    https://blog.csdn.net/w657395940/article/details/41144225 各种尝试都,最后 pip install cx-Oracle 成功导入

  3. 为什么选择.NETCore

     为什么选择.NETCore? 学习新的开发框架是一项巨大的投资.您需要学习如何在新框架中编写,构建,测试,部署和维护应用程序.作为开发人员,有许多框架可供选择,很难知道什么是最适合的.即使您正在使用 ...

  4. 【计算机视觉】PASCAL VOC数据集分析

    PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 本文主要分析PASCAL V ...

  5. windows 安装node.js

    安装node.js 这里我们是直接下载的编译后的zip包 地址:https://nodejs.org/en/download/ 点击下载相应的zip版本 这里我把zip包最里面一层的东西,所有内容放在 ...

  6. javadoc 抽出代码中的注释

    背景: 在已经有的项目里面利用javadoc来抽出代码中每个类,每个方法的注释部分,形成一个文档. 方法1 利用eslipse来实现 之后会在指定的目录下生成html文档 方法2 利用命令来执行 先把 ...

  7. appium 弹窗处理

    测试过程中遇到两类弹窗: 系统权限弹窗具体业务弹窗系统权限弹窗Android系统权限弹窗一般出现在安装 app 后首次打开,如:定位权限.电话权限等.我们可以按顺序执行测试用例,将该类操作放到 Ini ...

  8. c++递归函数

    一.什么是递归算法 递归即递推+回归.递归算法是把问题转化为规模缩小了的同类子问题,然后递归调用函数(或过程)来表示问题的解. 二.递归算法的特点 1.必须有 递归函数 + 递归出口 2.递归算法解题 ...

  9. Linux+QT界面开发(含数据库)小结

    今天十一国庆节,过了一个很有意义的国庆节,去了龙岗区图书馆,第一次知道了借的书可以在任意分馆归还!这个切实方便了广大读者.针对Linux应用,特意借阅一本:<linux环境下Qt4图形界面与My ...

  10. Spring RestTemplate的使用示例

    @Bean注册一个RestTemplate: 调用服务: 因为要参与网络传输,所以要实现序列化接口: