博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react学习笔记2:jsx
阅读量:5992 次
发布时间:2019-06-20

本文共 2711 字,大约阅读时间需要 9 分钟。

  hot3.png

jsx=js+xml,不知道xml是什么,回忆一下使用过的的svg

学习笔记都会在 create-react-app  创建的项目下测试,我们会不断修改index.js的代码

 

1.输出helloworld

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';ReactDOM.render(    

Helloworld

, document.getElementById('root'));registerServiceWorker();

我们关心的就是使用jsx的部分,在index.js上面导入了react和react-dom类库,下面就是我们jsx的写法,

我们使用的是:

ReactDOM.render(    

Helloworld

, document.getElementById('root'));

这个方法的第一个参数我们传递的就是xml,第二个参数是一个原生js的dom节点,

我们审查元素:

163021_bYPq_2352644.png

 

2.使用复杂xml结构

非常简单,不过最外层只能是一个标签,不能这么去写:

163423_JpzE_2352644.png

这种写法才是正确的:

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';ReactDOM.render(    

Helloworld

2

, document.getElementById('root'));registerServiceWorker();

在最外层有只能有一个标签

 

3.标签设置属性

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';ReactDOM.render(    

Helloworld

2

, document.getElementById('root'));registerServiceWorker();

 

4.表达式的使用

如果你使用过ng或者vue就会知道,html嵌套的{

{}}等只是支持单表达式,react是支持各种js语句的:

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';ReactDOM.render(    

Helloworld

{1+3==2?2:3}

, document.getElementById('root'));registerServiceWorker();

 

 

5.类名设置

和我们直接在标签上写class=“xx”不一样,在jsx中只能用 className 设置类名,就想我们利用dom去获取和设置类名一样:

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';ReactDOM.render(    

Helloworld

{1+3==2?2:3}

, document.getElementById('root'));registerServiceWorker();

164313_oKne_2352644.png

 

6.行内样式

粗鲁的方式:

164515_EJR1_2352644.png

我们会发现直接报错了,因为jsx有自己的语法,在行内样式的设置上必须采用对象的形式取设置:

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';var objstyle={	color:"red"};ReactDOM.render(    

Helloworld

{1+3==2?2:3}

我是行内样式

, document.getElementById('root'));registerServiceWorker();

 

7.数组方式设置xml

会把数组的xml识别到,并且自动插入到对应位置:

import React from 'react';import ReactDOM from 'react-dom';import './index.css';import registerServiceWorker from './registerServiceWorker';var objstyle={	color:"red"};var arr=[	

Helloworld

,

{1+3==2?2:3}

,

我是行内样式

]ReactDOM.render(
{arr}
, document.getElementById('root'));registerServiceWorker();

 

8.总结

1.render方法第一个参数是xml,这个xml外层只能是一个标签,里面可读取xml形式的arr

2.render方法第二个参数是dom节点

3.类名只能用className设置

4.行内样式要使用对象形式赋值

5.支持的表达式复杂

6.一对{}设置处理

7.xml外层没有引号,不是字符串而是xml

转载于:https://my.oschina.net/tbd/blog/1544322

你可能感兴趣的文章
JAX-RS开发 hello world
查看>>
题目:请实现一个函数,将一个字符串中的空格替换成“%20”
查看>>
shell 的语法
查看>>
第三章 logstash - 输入插件之tcp与redis
查看>>
C# 实现数字字符串左补齐0的两种方法
查看>>
明年暑假去培训PHP
查看>>
RIA and volta
查看>>
Linux下安装redis
查看>>
安装ndoutils 提示“MySQL library could not be located”错误!
查看>>
SQL 转义
查看>>
Access2003转换成SQL2005。
查看>>
CRC 模式及实现
查看>>
css样式小技巧
查看>>
hdu 4123 树形DP+RMQ
查看>>
安卓---Toast工具类,有点懒
查看>>
消费者端的Spring JMS 连接ActiveMQ接收生产者Oozie Server发送的Oozie作业执行结果
查看>>
SQL2005中的事务与锁定(九)- 转载
查看>>
【转载】我们要做不完美的自己
查看>>
用dtmf实现asterisk自动拨打分机
查看>>
嵌入式开发之davinci--- 8127 中camer 和 capture link 的区别
查看>>