React系列,初识
学习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系列,初识的更多相关文章
- react系列从零开始-react介绍
react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到w ...
- React 系列教程 1:实现 Animate.css 官网效果
前言 这是 React 系列教程的第一篇,我们将用 React 实现 Animate.css 官网的效果.对于 Animate.css 官网效果是一个非常简单的例子,原代码使用 jQuery 编写,就 ...
- 从 0 到 1 实现 React 系列 —— 1.JSX 和 Virtual DOM
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- 从 0 到 1 实现 React 系列 —— 5.PureComponent 实现 && HOC 探幽
本系列文章在实现一个 cpreact 的同时帮助大家理顺 React 框架的核心内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/PureComponent/HOC/...) ...
- 从 0 到 1 实现 React 系列 —— 4.setState优化和ref的实现
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- 从 0 到 1 实现 React 系列 —— 3.生命周期和 diff 算法
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- 从 0 到 1 实现 React 系列 —— 2.组件和 state|props
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- react系列笔记1 用npx npm命令创建react app
react系列笔记1 用npx npm命令创建react app create-react-app my-app是开始构建新的 React 单页应用程序的最佳方式.它已经为你设置好了开发环境,以便您可 ...
- react系列教程
这个系列将从基础语法讲起,把react全家桶都讲到,然后到具体的使用,最后完成后,会写一个完整的demo. 前置要求: 基本的CSS,JS要熟练. 部分ES6语法需要了解.可以参考下面提到的阮一峰老师 ...
- React系列之--props属性
版权声明:本文为博主原创文章,未经博主允许不得转载. PS:转载请注明出处作者:TigerChain地址:http://www.jianshu.com/p/fa81cebac3ef本文出自TigerC ...
随机推荐
- flex布局大全 2019
有句话叫做:存在即是合理. 最近很喜欢flex布局模式,不过还在摸索中,这里正一边在项目中使用和总结,也在学习一些大牛们总结的东西和布局思考. 鉴于自己很苦恼,到处去ha资料,真的,就没有一个系统的, ...
- [LeetCode] 375. Guess Number Higher or Lower II 猜数字大小 II
We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...
- 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串
最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两 ...
- Python下numpy的使用
首先:当然是欢迎大家了! Numpy : NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structur ...
- 解决ViewPager与百度地图滑动冲突
一.问题描述 ViewPager中嵌套百度地图的时候会出现百度地图滑动冲突. 二.期望结果: 滑动地图的时候只有地图滑动,滑动其他区域可以切换viewpager. 三.解决方法 自定义viewpage ...
- was8.5和aop的问题:JVMVRFY013 违反类装入约束
一.错误日志:Error 500: javax.servlet.ServletException: java.lang.VerifyError: JVMVRFY013 违反类装入约束 类=org/sp ...
- 将本机电脑作为自己的网站服务器--基于XAMPP在本地建立wordPress网站
"我不敢说自己从未担心害怕过. 实际上我希望少一点担心害怕,因为它让我分心,让我的神经系统备受煎熬".----马斯克 周日,搞了大半天,为了熟悉wordPress,先在自己的电脑上 ...
- LeetCode 669. 修剪二叉搜索树(Trim a Binary Search Tree)
669. 修剪二叉搜索树 669. Trim a Binary Search Tree 题目描述 LeetCode LeetCode669. Trim a Binary Search Tree简单 J ...
- Windows快捷键大全
每天在使用电脑,不会记点快捷键怎行?高效办公从快捷键开始! Windows 10 键盘快捷方式就是按键或按键组合,可提供一种替代方式来执行通常使用鼠标执行的操作. 其他键盘快捷方式 应用中的键盘快捷方 ...
- Apache Kafka用例
1.目标 在我们上一篇Kafka教程中,我们讨论了Kafka Pros and Cons.今天,在这篇Kafka文章中,我们将讨论Apache Kafka用例和Kafka应用程序.Kafka是新数据堆 ...