React核心概念与JSX
// React.createElement创建的ele是一个js对象
// 第一个参数:要创建的React元素
// 第二个参数:该React元素的属性
// 第三个参数及其以后的参数:该React元素的子节点
const ele = React.createElement('h1', {id: '标题'}, 'Helle React Ele');
// ReactDOM.render将这个react生成的js对象,映射成真实的DOM元素并展示到屏幕上
// 第一个参数:要渲染的React元素
// 第二个参数:DOM元素,用于指定渲染到页面中的位置, 所以React创建的应用是SPA单页面应用。
ReactDOM.render(ele, document.getElementById('root'))
const ele3 = React.createElement('h2', {id:'title2'}, React.createElement('h3', {id:'title3'}, 'hello, ele3'))
const ele4 = <h2><h3>hello, ele4</h3></h2>
const ele5 = document.getElementById('demo')
console.log('虚拟DOM', ele4)
console.log('真实DOM', ele5)
debugger
ReactDOM.render(ele2,document.getElementById('rootReact'));
const ele4 = <h2><h3>hello, ele4</h3></h2>
ReactDOM.render(ele2,document.getElementById('rootReact'));
const ele3 = React.createElement('h2', {id:'title2'}, React.createElement('h3', {id:'title3'}, 'hello, ele3'))
ReactDOM.render(ele2,document.getElementById('rootReact'));
<script type="text/babel">
let myDom = <h1>hello tan</h1>; //将虚拟DOM元素myDom, 渲染到真实DOM上去
ReactDOM.render(myDom,document.getElementById('rootReact'));
</script>
.npm install -g create-react-app 全局安装脚手架
2.create-react-app --version 查看安装的版本
3.create-react-app my-app 创建项目
4.npm start/ yarn start 启动项目
npx create-react-app my-app 创建项目
2.npm start/ yarn start 启动项目
import React from 'react';
import ReactDOM from 'react-dom'; const ele = React.createElement('h1', {title: '文章的标题'}, 'Hello React') ReactDOM.render(ele, document.getElementById('root'))
let p1 = React.createElement('h1',null,"hello React !!")
let p2 = <h1>"hello React !!"</h1>
ReactDom.render(p1, document.getElementById("root"))
1.a
2.a+b
3.list.map() 它们在左边都可以用一个const var = 进行接收。
这个接收的值是{}要展示的值
js语句是什么
1.if(){}
2.for(){}
3.switch(){} 这些没有返回指定值的代码就是js语句,它们不能放到React的{}中
let loading = false
//条件渲染
//1.if else表达式
let loadData = () => {
if (loading) {
return <h4>加载中...</h4>
} else {
return <h4>加载完成</h4>
}
}
//2.三元运算符
loadData = () => {
return loading ? <h4>加载中...</h4> : <h4>加载完成</h4>
}
//3.逻辑运算符
loadData = () => {
return loading && <h4>加载中...</h4>
} const container = (
<div>
{loadData()}
</div>
)
ReactDom.render(container, document.getElementById("root"))
//列表渲染
const songs = [
{id:1,name:"大约在冬季"},
{id:2,name:"菊花台"},
{id:3,name:"捉泥鳅"}] const container = (
<div>
{songs.map((item)=><li key={item.id}>{item.name}</li>)}
</div>
)
ReactDom.render(container, document.getElementById("root"))
//样式渲染
const artile = function () {
return <p className="title" style={{color:"red", textAlign:"center"}}>这是一篇文章</p>
} const container = (
<div>
{artile()}
</div>
) ReactDom.render(container, document.getElementById("root"))
React核心概念与JSX的更多相关文章
- [React]核心概念
本文是对React文档:核心概念部分的笔记,内容大致与文档相同. 文档链接 React哲学部分写的很好,务必要看 JSX JSX是JS的语法扩展,配合react使用,为JS和HTML的混写 JSX支持 ...
- [WIP]React 核心概念
创建: 2019/05/01 Hello World ReactDOM.render( <p>sample</p>, document.getElementById('ro ...
- react 教程—核心概念
react 核心概念 : https://react.docschina.org/docs/getting-started.html(官网) 或 https://www.w3cschool.cn/ ...
- React 核心思想之声明式渲染
React 发展很快,概念也多,本文目的在于帮助初学者理清 React 核心概念. React 及 React 生态 React 的核心概念只有 2 点: 声明式渲染(Declarative) 基于组 ...
- react实战项目开发(2) react几个重要概念以及JSX语法
前言 前面我们已经学习了利用官方脚手架搭建一套可以应用在生产环境下的React开发环境.那么今天这篇文章主要先了解几个react重要的概念,以及讲解本文的重要知识JSX语法 React重要概念 [思想 ...
- AntDesign-React与VUE有点不一样,第一篇深入了解React的概念之一:JSX
AntDesign-React与VUE有点不一样,第一篇深入了解React的概念之一:JSX 一.什么是JSX 使用JSX声明一个变量(REACT当中的元素): const element =< ...
- webpack核心概念
一.webpack四个核心概念 1.入口[Entry] webpack将创建所有应用程序 依赖关系图表.图表的起点被称之为 入口起点.入口起点告诉webpack从哪里开始,并遵循着依赖关系图表知道打包 ...
- Redux 核心概念
http://gaearon.github.io/redux/index.html ,文档在 http://rackt.github.io/redux/index.html .本文不是官方文档的翻译. ...
- 通过核心概念了解webpack工作机制
webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...
- fusionjs 学习二 核心概念
核心概念 middleware 类似express 的中间件模型(实际上是构建在koa中间件模型上的),但是和koa 的中间件有差异 fusionjs 的中间件同时可以运行在浏览器页面加载的时候 se ...
随机推荐
- springboot+vue实现 下载服务端返回的文件功能
开发中会遇到,通过浏览器下载服务器端返回的文件功能,本文使用springboot+vue实现该功能. 后端代码: 注:后端返回的文件名遇到中文就会乱码,一直也没得到很好的解决方案,最后就统一返回1.x ...
- uniapp#实现自定义省市区三级联动
uni-APP中的三级联动(省市区)---数据前端写死 https://blog.csdn.net/lwaner/article/details/107150805 uniapp#实现自定义省市区三级 ...
- vue.js从输入中的contenteditable元素获取innerhtml
<div class="actual-score" :contenteditable="$route.params.mode === 'edit'" v- ...
- 编写Java代码时应该避免的6个坑
通常情况下,我们都希望我们的代码是高效和兼容的,但是实际情况下代码中常常含有一些隐藏的坑,只有等出现异常时我们才会去解决它.本文是一篇比较简短的文章,列出了开发人员在编写 Java 程序时常犯的错误, ...
- 扒一扒迅雷11新功能——6T云盘功能、极致传输、高清播放、跨端同步
云盘功能 极致传输 高清播放 跨端同步
- 项目使用 GlobalExceptionHandler 与 @RestControllerAdvice自定义异常 二
未经博主允许不得转载: 自定义异常,不仅需要定义符合自己业务的异常状态码,也需要定义自己项目中的异常封装.记录下自己手敲代码中的异常封装: 1.定义一个枚举类,枚举类中定义状态码及状态码描述,再定义一 ...
- idea 解决git更新冲突
转载请注明出处: 对使用idea工具解决git冲突,最近有发现不同的解决冲突的方法,都很快捷方便,记录一下. 1.先commit 再pull,然后手动进行merge 左边部分是本地仓库的代码,右边部分 ...
- AMBA Bus介绍_01
AMBA总线概述 系统总线简介 AMBA 2.0 AHB - 高性能Bus APB - 外设Bus AHB ASB APB AHB 组成部分 APB组成部分 AMBA协议其他有关问题 DMA DMA ...
- 问题--之前必须结合fn+f1,f2等才能调节音量,亮度,现在只按f1,f2就调节,导致快捷键冲突
1.问题 问题如上 2.解决方式 问题原因: 热键默认打开,用fn加上esc开启了热键的默认设置 解决: 再按一次fn加上esc关闭热键的默认设置
- [转帖]Docker最佳实践:5个方法精简镜像
https://juejin.cn/post/6844903880526921741 精简Docker镜像的好处很多,不仅可以节省存储空间和带宽,还能减少安全隐患.优化镜像大小的手段多种多样,因服 ...