React之JSX
0.对于学习React,我们先来熟悉下JSX的语法,
下面的这些语法仅用于构建一个组件的标签模块,定义完成之后如果需要做演示,请附加以下代码:
ReactDOM.render(
element1,
document.body
);
即可完成标签的演示。
1.普通的标签
const element1 = <div>Hello JSX</div>;
2.带子标签的标签
const element2 = (
<div>
<h1>Hello Child1</h1>
<span>Hello 2</span>
</div>
);
3.1带变量的标签
const user = {
name: 'qiumohanyu',
age: 27,
hobby: 'nothing',
website: 'www.baidu.com'
};
const hasNav = true;
const element3_1 = (
<div>
<h1>{user.name}</h1>
<span>{user.age}</span>
<span>{user.hobby}</span>
<a src={user.website}>主页</a>
<div> {hasNav ? <nav>Nav</nav> : null}</div>
</div>
);
3.2 内置函数的标签
function getItem() {
return 'from function';
}
const element3_2 = <div>{getItem()}</div>;
4.1 带类名的标签 class=>className
const type = true;
const element4_1 = (
<div>
<div className="mycls">带class的标签</div>
<span className={type?'class1':'class2'}>带判断逻辑的类名</span>
</div>
);
4.2 带tabindex的标签 tabindex=>tabIndex
const element4_2 = <div tabIndex="0">带tabindex的标签</div>;
4.3 带for属性的label
const element4_3 = <label htmlFor="input1">User Name</label>;
5.1 属性
const MyComponent = React.createClass(
{
render: function() {
return <div>My Component</div>
}
}
);
var x = "foo-value";
var y = "bar-value";
const element5_1 = <MyComponent foo={x} bar={y}/>;
5.2 属性延伸
var props = {};
props.foo = x;
props.bar = y;
const element5_2 = <MyComponent {...props} />;
//需要覆盖时
const element5_3 = <MyComponent {...props} foo={'new-value'}/>;
6 style属性
var mystyles = {
color: 'red',
border: '1px solid #000'
};
const element6 = <div style={mystyles}></div>;
7 HTML转义
var innerHtml = '<span> my span label</span>';
var toDiv = { __html: innerHtml };
const element7 = (
<div dangerouslySetInnerHTML={toDiv}></div>
);
8 自定义HTML属性
const element8=(
<div data-id="can render" ride="can not be render"></div>
);
React之JSX的更多相关文章
- React Native JSX value should be expression or a quoted JSX text.
问题描述: 我在使用props时候, 我的写法是这样的 ... <View> <Person name='john' age=32 gender=true></Pers ...
- React入门---JSX内置表达式-6
个人理解:接触的JSX就是在React中render方法里面的js,因为里面只能有一个节点,所以你写的东西都在一个div中,要有js所以通过JSX来表达.(个人菜鸟理解,欢迎指正) React 使用 ...
- react基础&JSX基础
一.HTML 标签 vs. React 组件 React 可以渲染 HTML 标签 (strings) 或 React 组件 (classes). 1.要渲染 HTML 标签,只需在 JSX 里使用小 ...
- react with JSX for {if…else…}
在react中用jsx渲染dom的时候经常会遇到if条件判断,然而在jsx中竟是不允许if条件判断的.以下有几种判断方式,可以根据自己的应用场景,挑选适合的 https://blog.csdn.net ...
- 【02】react 之 jsx
React与ReactDOM是react中核心对象,React为核心功能,ReactDOM提供对DOM的操作,以前的老版本中只有React没有ReactDOM,新版本中分离出ReactDOM提供两种渲 ...
- 前端笔记之React(一)初识React&组件&JSX语法
一.React项目起步配置 官网:https://reactjs.org/ 文档:https://reactjs.org/docs/hello-world.html 中文:http://react.c ...
- React中JSX的理解
React中JSX的理解 JSX是快速生成react元素的一种语法,实际是React.createElement(component, props, ...children)的语法糖,同时JSX也是J ...
- React之JSX入门
React是由ReactJS与React Native组成,其中ReactJS是Facebook开源的一个前端框架,React Native 是ReactJS思想在native上的体现! JSX并不是 ...
- React入门--------JSX
React学习网站 React官方英文网站:http://reactjs.cn/react/docs/top-level-api.html React官方中文网站:http://www.css88.c ...
随机推荐
- Memcached,你懂的
一.Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网 ...
- TortoiseGit 连接oschina不用每次输入用户名和密码的方法
每次git clone 和push 都要输入用户名和密码.虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢? 在网上看了各种方法,太杂,很多可能环境不一样,一直行不通.最后找到一种有效的方 ...
- 什么情况下会用到try-catch
本文不区分语言,只为记录一次有收获的面试. 面试官:什么情况下用到try-catch?程序员:代码执行预料不到的情况,我会使用try-catch.面试官:什么是预料不到的情况呢?程序员:比如我要计算a ...
- Generate Ubuntu Install Media On Mac
Opps, my computer system was broken again... Let's repire it. Introduction The system of my PC is br ...
- 浅谈php中使用websocket
在PHP中,开发者需要考虑的东西比较多,从socket的连接.建立.绑定.监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下: 1.socket协议的简介 2.介绍 ...
- uexQQ插件学习心得
uexQQ插件学习心得 uexQQ插件的作用:通过qq可以分享图文,音乐,应用到相应的qq空间.支持手机客户端分享和手机webQQ分享.下面我们就来看一看他的一些方法. 我们先说一下分享的步骤,这个步 ...
- sqlserver数据库 Schema
//读取数据库中所有的数据库 USE MASTER DECLARE @is_policy_automation_enabled bit SET @is_policy_automation_enable ...
- DataGridView中实现checkbox全选的自定义控件
在DataGridView中实现Checkbox的全选的方法就是在列头画一个checkbox, 并给其一个事件. 这个之前很多blog都有写, 这里就不多废话了, codeproject上面有示例代 ...
- Selenium 2.0 + Java 入门之环境搭建
最近在研究Java+Selenium的自动化测试,网上的资料比较多,自己测试实践后,整理出来一套相对比较完善的环境资料,因为网上很多下载实践的过程中,发现出现了很多不匹配的问题,什么jdk和eclip ...
- 【转】mysql对large page的支持
昨天同事问我关于大页内存的事,我也只是有个模糊的概念,从别的博客转过来的,先记录下 在 Linux 操作系统上运行内存需求量较大的应用程序时,由于其采用的默认页面大小为 4KB,因而将会产生较多 TL ...