React 学习JSX

JSX介绍
考虑一下这个变量的声明:

const element = <h1>Hello,World!</h1>;

这种既不是字符串也不是HTML。而是JSX。它是javaScript的一种扩展语法。我们推荐在React种使用这种语法来描述UI信息。
为什么选择JSX
React拥抱渲染逻辑与其他UI逻辑固有耦合的事实:事件如何处理,状态如何随着事件变化以及数据如何准备显示。
通过将标签和逻辑放在不同的文件中,而不是人为的分离技术。伴有松散耦合的React单元称为组件。
理解:所谓的标签就是普通的HTML标签。
问题:
1. 组件还不是很明白
2. 松散耦合是什么?
在JSX中嵌入表达式
在下面的例子中,我们声明了一个name的变量,然后在JSX中使用花括号将其括起来。

import React,{ Component } from 'react';
const name = '天下';
class JSX extends Component {
    render() {
        return (
            <div>
                Hello,{ name }
            </div>
        )
    }
}
export default JSX;

在JSX中也可以嵌入函数

import React,{ Component } from 'react';
const name = '天下';

const user = {
    name: '天下',
    age: 18,
}
function formateName(user) {
    return (
        <span>
            { user.name + ' ' + user.age }
        </span>
    )
}
class JSX extends Component {
    render() {
        return (
            <div>
                <div>Hello,{ name }</div>
                <div>Hello, { formateName(user) } </div>
            </div>
        )
    }
}
export default JSX;

JSX也是一个表达式
编译之后,JSX就变成了常规的JavaScript。
这意味上在if语句和for语句中使用JSX,用它给变量赋值,当作参数接受,或者作为函数的返回值。
理解:就是在if或者for语句中可以使用JSX。

import React,{ Component } from 'react';
const name = '天下';
const user = {
    name: '天下',
    age: 18,
}
function formateName(user) {
    return (
        <span>
            { user.name + ' ' + user.age }
        </span>
    )
}

function greeting(user) {
    if(user) {
        return (
            <div>Hello,{ formateName(user) } </div>
        )
    }
    return <div>Hello,World!</div>
}
class JSX extends Component {
    render() {
        return (
            <div>
                <div>Hello,{ name }</div>
                <div>{ greeting(user) } </div>
            </div>
        )
    }
}
export default JSX;

用JSX指定属性值
您可以使用双引号来指定字符串字面量作为属性值。‘

const element = <div dataIndex='0'></div>

您可以用花括号嵌入一个JavaScript表达式作为属性值。

const element = <img src={ img.url } />

用JSX指定子元素
jsx可能包含子元素:

const element = <div>
                    <h1>hello,World!</h1>
                    <h2>我想看见你</h2>
                </div>

JSX防止注入攻击
在JSX嵌入用户输入是安全的:

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

JSX表示对象
问题:
什么是XSS(跨站脚本)攻击?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值