React V6的dom循环(类似与v-for),动态类名,模板字符串

news/2024/7/15 18:32:51 标签: react.js, 前端, javascript

应用场景

比如一个管理系统的左侧菜单,想用for循环来产生,那么就需要实现一个类似v-for的功能,react中可以这样写

代码实现

循环菜单

//页面路由
  const str = 'done'
  const menuArr = [
    {
      name:'数据统计',
      icon:HomeOutlined,
      path:'/',
    },
    {
      name:'内容管理',
      icon:DiffOutlined,   //这个图标不能加引号 ,否则变成字符串
      path:'/article',
    },
    {
      name:'发布文章',
      icon:EditOutlined,
      path:'/publish',
    },
    {
      name:'测试菜单',
      icon:'',
      path:'/testShow',
    },
    // {
    //   name:'params传参',
    //   icon:DiffOutlined,
    //   path:'/paramsPage',
    // },
  ];


//最初的菜单模式
<Menu
            mode="inline"
            theme="dark"
            defaultSelectedKeys={pathname}
            selectedKeys={pathname}
            style={{ height: '100%', borderRight: 0 }}
          >
            {/* <Menu.Item icon={<HomeOutlined />} key="/">
              <Link to='/'>数据概览</Link>
            </Menu.Item>
            <Menu.Item icon={<DiffOutlined />} key="/article">
              <Link to="/article">内容管理</Link>
            </Menu.Item>
            <Menu.Item icon={<EditOutlined />} key="/publish">
              <Link to='/publish'> 发布文章</Link>
            </Menu.Item>
            <Menu.Item icon={<EditOutlined />} key="/testShow">
              <Link to='/testShow'> 测试文章</Link>
            </Menu.Item> */}
          </Menu>

//然后想把他改成for循环的
<Menu
            mode="inline"
            theme="dark"
            defaultSelectedKeys={pathname}
            selectedKeys={pathname}
            style={{ height: '100%', borderRight: 0 }}
          >
            {/* 注意这里的循环不是{}而是() */}
            {
              menuArr.map((item) => (
                <Menu.Item icon={item.icon ? <item.icon /> : <EditOutlined />} key={item.name}>
                  {/* 模板字符串的使用 */}
                  <Link to={item.path}> {item.name}{`${str}`}</Link>
                </Menu.Item>
              ))
            }
          </Menu>

动态类名

//动态类名
  const isActive = true
  const className = `header ${isActive ? 'active' : 'inactive'}`;
<Header className={className}></Header >

模板字符串

<Link to={item.path}> {item.name}{`${str}`}</Link>

http://www.niftyadmin.cn/n/480520.html

相关文章

【mars3d】基于vue3的marsgis通用UI库 mars-ui 的使用

一名脑残程序员的mars-ui心酸使用记录。 通过mars3d的官网我们可以看到&#xff0c;有配套的UI库使用&#xff0c;那么我们如何使用到自己的项目中呢&#xff0c;跟着文章一步一步来吧&#xff01; 1、引入UI库 ① 安装ant-design-vue cnpm install ant-design-vue --save②…

探索Gradio的CheckboxGroup模块:交互式多选框组件

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

datax mysql同步数据到clickhouse配置文件样例及说明

datax mysql同步数据到clickhouse配置文件样例及说明 { "job": { "content": [ { "reader": { "parameter": { "password": "…

docker创建gogs容器

步骤 引言创建 gogs数据库执行命令创建gogs 引言 Gogs是基于Go语言编写的可以替代gitlab的代码托管平台&#xff0c;它没有gitlab那么庞大且不需要占用大量资源&#xff0c;对小型服务器相对于比较友好&#xff0c;我们甚至可以使用树莓派搭建。 创建 gogs数据库 gogs要求&a…

动态规划详解Python

动态规划 动态规划&#xff08;Dynamic Programming&#xff09;是一种用于解决复杂问题的算法设计方法。它通常用于优化问题&#xff0c;其中问题可以被分解成一系列重叠子问题&#xff0c;通过存储并重复使用已经解决过的子问题的解&#xff0c;可以避免重复计算&#xff0c…

C++ - 20230627

一. 思维导图 2.定义一个命名空间Myspace&#xff0c;包含以下函数&#xff1a;将一个字符串中的所有单词进行反转&#xff0c;并输出反转后的结果。例如&#xff0c;输入字符串为"Hello World"&#xff0c;输出结果为"olleH dlroW"&#xff0c;并在主函数…

vi/vim 如何在PowerShell里粘贴内容

vi/vim 如何在PowerShell里粘贴内容 Shift 鼠标右键 Vi/Vim 有两种主要的模式&#xff1a;命令模式和插入模式。 要进入命令模式&#xff0c;只需按下英文输入状态下的冒号&#xff08;:&#xff09;键。一旦进入命令模式&#xff0c;您可以在底部的命令行中输入各种命令。例…

Seata-DTX|分布式事务金融场景案例介绍

文&#xff5c;魏陈豪&#xff08;花名&#xff1a;无陈 Sam) 蚂蚁集团 SOFAStack 产品专家 本文 2966 字 阅读 8 分钟 序言 今天给大家带来一篇 Seata-DTX[1] 商业版分布式事务在金融行业如何保证事务一致性的实践介绍。从一个全局视角出发看看一致性的保证、分别有哪些节点&a…