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&元素渲染&组件和Props -> 正文阅读

[JavaScript知识库]React中JSX&元素渲染&组件和Props

一、JSX简介

JSX,是JavaScript的语法扩展,表示在JavaScript中写HTML的代码,可以很好的描述UI应该呈现出它应有交互的本质形式。

1、JSX是一个表达式

在编译之后,JSX表达式会被转为普通的JavaScript函数调用,并得到其返回值。
所以,我们可以在if语句、for循环的代码块中使用JSX,可以将JSX赋值给变量,可以把JSX当做参数传入。

2、JSX特定属性

1、可以通过引号,将属性值指定为字符串字面量

const element = <div tabIndex="1"></div>

2、可以使用大括号,在属性值中插入一个JavaScript表达式

const element = <img src={user.avatarUrl}></img>

注意:对于同一种属性不能同时使用这两种符号

我们需要注意的是,JSX在语法上更接近于JavaScript而不是HTML,所以我们在给变量命名时,使用小驼峰命名法来定义属性的名称。

3、使用JSX指定子元素

1、如果标签内没有内容,可以使用闭合标签
2、JSX标签内可以包含很多子元素

const element = (
  <div>
    <h1>你好</h1>
    <h2>欢迎</h2>
  </div>
)

4、JSX防止XSS攻击

首先了解一下什么是XSS攻击?
XSS,即跨站脚本攻击,恶意攻击者向web网页里插入恶意HTML代码,用户浏览该网页时,嵌入的HTML代码会被执行,从而达到恶意攻击用户的特殊目的。
JSX如何防止XSS攻击?
可以安全的在JSX当中插入用户输入的内容。

const inputcontent = response.inputcontent;
const element = <h1>{inputcontent}</h1>

React DOM在渲染所有输入内容之前,默认会进行转义,所有的内容在渲染之前都被转换成了字符串,这样可以有效的防止XSS攻击。

二、元素渲染

1、元素是什么?

元素描述了你在屏幕上想看到的内容。

2、将一个元素渲染为DOM

通过ReactDOM.render()将react元素渲染到根DOM节点

const element = (<h1>hello,world</h1>)
ReactDOM.render(
  element,
  document.getElementById('root')
);

3、更新已经渲染的元素

React元素是不可变对象,一旦创建,就无法更改它的子元素或者属性。更新UI的唯一的方式就是创建一个新的元素,并将其传入ReactDOM.render()

三、组件和Props

组件允许将UI拆分为独立可复用的代码片段,每个代码片段进行独立的构思。
组件:接收任意的传参,并返回用于描述页面展示内容的React元素。

1、函数组件和class组件

函数组件

function test(props){
  return <h1>Hello,{props.name}</h1>
}

class组件

class Demo extends React.Component{
  render() {
    return <h1>Hello,{this.props.name}</h1>
  }
}

注意:组件名称必须以大写字母开头

2、Props

当React元素为自定义组件时,它会将JSX所接受的属性转换为单个对象传递给组件,这个对象称为“props”

function Test(props){
  return <h1>Hello,{props.name}</h1>
}
const element = <Test name="lisa"/>
ReactDOM.render(
  element,
  document.getElementById('root')
);
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:16:14  更:2022-04-01 23:19: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/24 4:38:10-

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