IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> react第二天jsx语法 -> 正文阅读

[JavaScript知识库]react第二天jsx语法

一、jsx语法

1、JavaScript与xml

在js里边编写html 两者进行混写,并且html不需要加引号。

2、jsx的特点:

类xml语法容易被接受,结构清晰。

增强js语义。

抽象度高,屏蔽DOM操作,跨平台。

代码模块化。

列如:

<div id="app"></div>
</body>
<script type="text/babel">
  ReactDOM.render(
    <h1>react</h1>,
    document.getElementById("app")
  )
</script>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

二、react动态渲染

在react中我们可以使用单括号{变量名}来动态渲染数据

列如:

???var?num=1

????????????????????ReactDOM.render(

????????????????????????<div>{num}</div>

????????????????????)

????????????????在react中{}?里边是一个js运算环境

注意:

????????????????在react中不能使用if?else条件判断语句??需要使用三元运算符(三目运算符)

????????????????进行替代。

 <div id="app"></div>
    <script type="text/babel">
        // // 数组
        // var arr=[
        //     <h1>这是标题</h1>,
        //     <h2>这是一个小标题</h2>
        // ]
        // // Number
        // var num=123
        // // String
        // var str1='hello world'

        // // 对象(Object)
        // var obj={
        //     name: '张三',
        //     age: 16
        // }
        // var bool=false


        // ReactDOM.render(
        //     <div>{arr}--{num}--{str1}--{obj.name}--{obj.age}--{bool===true?1:2}</div>,
        //     document.getElementById('app')
        // )

当需要动态渲染两个样式时,我们可以使用

var myStyle={
            color: 'blue',
            fontSize: '25px'
        }
        var test1={
            fontWeight: 'bold'
        }

        ReactDOM.render(
            <div style={{...myStyle, ...test1}}>你好</div>,
            document.getElementById('app')
        )
    </script>

三、jsx里边进行运算

?如果在编写react的时候??元素在渲染时候不想再两个或者多个相邻dom节点外边再加一个新的dom节点这个时候我们可以使用?React.Fragment?作为当前所有子元素的共同父元素?进行渲染?该标签不会在html里边被渲染出来??他的作用跟vue中template相似。

???????????例如:

????????????????<React.Fragment>

????????????????????<p>内容1</p>

????????????????????<span>新的内容</span>

????????????????</React.Fragment>

????????????????渲染出来的结果是:

????????????????????<p>内容1</p>

????????????????????<span>新的内容</span>

????????????????????React.Fragment不会作为html标签被渲染

?????? ? ? ? ? ?react没有类似于vue中指令这个东西。

假如我们需要在react中对学生的成绩进行判断:

???大于等于60?小于70??及格

????小于60???不及格

????大于等于70?小于80??良好

????大于等于80?优秀

var score=60
 ReactDOM.render(
        <React.Fragment>
            <div className="result">
                {score>=60 && score<70 ? '及格' : score>=70 && score<80 ? '良好' : 
                score>=80 ? '优秀': '不及格'}
            </div>
            <p>123</p>
        </React.Fragment>,
        document.getElementById('app')
    )

当我们在react中动态渲染图片时

 var src='https://dss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=1401878636,1957300882&fm=58'
 ReactDOM.render(
        <React.Fragment>
            <img src={src} alt="" />
        </React.Fragment>,
        document.getElementById('app')
    )

src={src}不需要加引号。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:13:37  更:2021-08-11 12:17:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 9:26:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码