• 从零开始学React--JSX


    JSX 是 JavaScript 语法扩展,可以让你在 JavaScript 文件中书写类似 HTML 的标签。

    所以JSX看起来像HTML,但是语法比HTML严格,比如只允许一个根节点,所有标签必须闭合,class属性要改成className等,参见使用 JSX 书写标签语言 – React 中文文档

    JSX最强大的地方是可以在HTML里面写js代码

    在 JSX 中通过大括号使用 JavaScript 

    在jsx中,大括号包裹的就是js代码,里面可以使用变量,方法,对象,如果要使用注释可以使用 {/*使用js变量*/}这种方式

    1. function JSXTest() {
    2. let message = '这是一条消息'
    3. return (
    4. <div>
    5. {/*使用js变量*/}
    6. {message}<br/>
    7. {/*使用方法*/}
    8. {new Date().getDate()}
    9. <div style={{color: 'red'}}>这是js对象div>
    10. div>
    11. );
    12. }
    13. export default JSXTest;

    列表渲染

    列表渲染是项目中经常用到的技巧,比如我们从后台拿到商品数据,在前台渲染成一张表格等,react的列表渲染没有特别的语法,就是用的js数组里面的方法,比如将数据list变成li的集合,可以使用数组的map方法

      是jsx语法,在里面使用js要写大括号,在map的回调函数里面返回html代码,在js代码里面写html需要些小括号

      1. function JSXTest() {
      2. return (
      3. <ul>
      4. {list.map(item => {
      5. return (<li key={item.id}>{item.name}li>)
      6. })}
      7. ul>
      8. );
      9. }

      完整代码,因为只有一行代码,回调函数里面的大括号,return,小括号都可以省略

      1. let list = [
      2. {id: 1, name: 'Vue'},
      3. {id: 2, name: 'React'},
      4. {id: 3, name: 'Angular'}
      5. ]
      6. function JSXTest() {
      7. return (
      8. <ul>
      9. {list.map(item=><li key={item.id}>{item.name}li>)}
      10. ul>
      11. );
      12. }
      13. export default JSXTest;

      技巧:记住js里面写html需要用小括号包裹,html里面写js需要用大括号包裹(吐槽:看的头疼,还是习惯vue的写法)

      条件渲染

      条件渲染也是很常用的技巧,根据变量来显示隐藏组件,常用的有两种方式,逻辑与和三元运算

      1. let isLogin = true
      2. function JSXTest() {
      3. return (
      4. <div>
      5. {isLogin && <span>login pagespan>}<br/>
      6. {isLogin? <span>has Loginspan> : <span>loading...span>}
      7. div>
      8. );
      9. }
      10. export default JSXTest;

      复杂条件渲染

      上面两种方式只能实现简单的条件渲染,要想实现复杂的效果可以使用方法

      1. function getArticleItem(type) {
      2. if(type == 0) {
      3. return <div>无图模式div>
      4. } else if(type == 1) {
      5. return <div>单图模式div>
      6. } else {
      7. return <div>双图模式div>
      8. }
      9. }
      10. function JSXTest() {
      11. return (
      12. <div>
      13. {getArticleItem(0)}
      14. {getArticleItem(1)}
      15. {getArticleItem(2)}
      16. div>
      17. );
      18. }
      19. export default JSXTest;

    • 相关阅读:
      数据分析之人力资源管理驾驶舱
      36 【节流和防抖】
      05.数据解析之正则表达式
      基于Javaweb的流动市场地摊管理系统
      哪种网站适合物理服务器
      断言语句 assertion
      C++语言整理(待更新)
      【C++ Core Guidelines解析】C++学习之路的一盏明灯
      好玩好用软件推荐,让你大开眼界
      项目架构设计说明书编制
    • 原文地址:https://blog.csdn.net/ting4937/article/details/139289235