当前位置: 首页 > wzjs >正文

做高端网站的公司软文范例100字

做高端网站的公司,软文范例100字,专门做创意桌椅的网站,网络营销方式对比分析列表渲染与条件渲染 在 React 开发中,列表渲染 和 条件渲染 是处理动态数据和用户交互的基础技术。通过列表渲染,你可以根据数据动态生成 UI 元素;而条件渲染则让你根据特定条件展示不同的内容。这两个技能在实际项目中非常常见,…

列表渲染与条件渲染

在 React 开发中,列表渲染条件渲染 是处理动态数据和用户交互的基础技术。通过列表渲染,你可以根据数据动态生成 UI 元素;而条件渲染则让你根据特定条件展示不同的内容。这两个技能在实际项目中非常常见,比如展示产品列表或根据用户登录状态显示不同界面。

本文将深入讲解如何在 React 中实现列表渲染和条件渲染,并提供代码示例和实践指导。无论你是初学者还是想复习基础知识,这篇教程都将为你提供清晰且实用的内容。


1. 列表渲染

列表渲染是指根据数据数组生成一组 JSX 元素的过程。在 React 中,通常使用 JavaScript 的 map 函数来实现。

1.1 基本用法

假设你有一个任务列表的数据:

const tasks = [{ id: 1, text: '学习 React' },{ id: 2, text: '练习 JSX' },{ id: 3, text: '掌握 Hooks' }
];

你可以用 map 函数将这个数组渲染为一个列表:

function TaskList() {return (<ul>{tasks.map(task => (<li key={task.id}>{task.text}</li>))}</ul>);
}
  • tasks.map 将每个任务对象转换为一个 <li> 元素。
  • key={task.id} 为每个列表项指定一个唯一标识。
1.2 key 属性的重要性

key 是 React 中的特殊属性,用于帮助 React 高效地更新 DOM。它在列表渲染中必不可少。

  • 为什么需要 key:React 用 key 来追踪每个元素的变化,确保只更新必要的部分。
  • 要求key 必须在同级元素中唯一且稳定。
  • 错误示例:使用数组索引作为 key(如 key={index})在动态列表中可能导致问题,因为索引会随列表变化而改变。
  • 正确做法:使用数据中的唯一标识符,如 id

示例

// 错误:使用索引作为 key
{tasks.map((task, index) => (<li key={index}>{task.text}</li>
))}// 正确:使用唯一 ID
{tasks.map(task => (<li key={task.id}>{task.text}</li>
))}

2. 条件渲染

条件渲染是指根据条件控制 UI 元素的显示。React 没有专门的条件渲染语法,而是利用 JavaScript 的条件语句。

2.1 使用 if-else

在函数外部使用 if-else 判断:

function Welcome({ isLoggedIn }) {if (isLoggedIn) {return <p>欢迎回来!</p>;} else {return <p>请登录。</p>;}
}
2.2 使用三元运算符

在 JSX 中使用三元运算符,适合简单条件:

function UserStatus({ isLoggedIn }) {return (<div>{isLoggedIn ? <p>欢迎回来!</p> : <p>请登录。</p>}</div>);
}
2.3 使用逻辑运算符

&& 运算符在条件为 true 时渲染内容:

function Alert({ hasUpdate }) {return (<div>{hasUpdate && <p>有新更新!</p>}</div>);
}
  • 如果 hasUpdate 为 false,则什么都不渲染。
2.4 返回 null 隐藏内容

通过返回 null 完全不渲染组件:

function SecretMessage({ show }) {if (!show) return null;return <p>这是一个秘密消息。</p>;
}

3. 实际应用:任务列表

让我们结合列表渲染和条件渲染,创建一个简单的任务列表应用,支持标记任务完成和过滤已完成任务。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>任务列表</title><script src="https://cdn.jsdelivr.net/npm/react@18.2.0/umd/react.development.js"></script><script src="https://cdn.jsdelivr.net/npm/react-dom@18.2.0/umd/react-dom.development.js"></script><script src="https://cdn.jsdelivr.net/npm/babel-standalone@6.26.0/babel.min.js"></script><script src="https://cdn.tailwindcss.com"></script>
</head>
<body><div id="root" class="p-4"></div><script type="text/babel">function TodoApp() {const [todos, setTodos] = React.useState([{ id: 1, text: '学习 React', completed: false },{ id: 2, text: '练习 JSX', completed: true },{ id: 3, text: '掌握 Hooks', completed: false }]);const [showCompleted, setShowCompleted] = React.useState(true);const toggleCompleted = (id) => {setTodos(todos.map(todo =>todo.id === id ? { ...todo, completed: !todo.completed } : todo));};const filteredTodos = showCompleted? todos: todos.filter(todo => !todo.completed);return (<div className="max-w-md mx-auto"><h1 className="text-2xl font-bold mb-4">任务列表</h1><label className="flex items-center mb-4"><inputtype="checkbox"checked={showCompleted}onChange={() => setShowCompleted(!showCompleted)}className="mr-2"/>显示已完成任务</label><ul className="space-y-2">{filteredTodos.map(todo => (<likey={todo.id}className="flex justify-between items-center p-2 bg-gray-100 rounded"><spanstyle={{ textDecoration: todo.completed ? 'line-through' : 'none' }}>{todo.text}</span><buttononClick={() => toggleCompleted(todo.id)}className="px-2 py-1 bg-blue-500 text-white rounded hover:bg-blue-600">{todo.completed ? '标记未完成' : '标记完成'}</button></li>))}</ul></div>);}const root = ReactDOM.createRoot(document.getElementById('root'));root.render(<TodoApp />);</script>
</body>
</html>

4. 如何运行
  1. 将以上代码保存为 index.html 文件。
  2. 在浏览器中打开该文件,你将看到一个任务列表。
  3. 你可以:
    • 点击按钮切换任务的完成状态。
    • 勾选或取消勾选“显示已完成任务”来过滤列表。

5. 总结

通过这篇教程,你学习了:

  • 如何使用 map 进行列表渲染并正确设置 key
  • 如何通过 if-else、三元运算符和逻辑运算符实现条件渲染
  • 如何结合两者构建一个简单的任务列表应用。

这些技能是 React 开发的基础,掌握它们将帮助你更自信地构建动态和交互式的界面。下一篇文章将深入学习React的工作原理:虚拟 DOMDiff 算法,敬请期待!

http://www.dtcms.com/wzjs/206976.html

相关文章:

  • 体育网站建设需求口碑营销方案怎么写
  • 做网站如何做视频百度网页版主页网址
  • wordpress 安全问题上海seo优化外包公司
  • 网页毕业设计论文seo是付费还是免费推广
  • 便宜高端网站设计百度人工电话多少号
  • 简单描述网站建设流程太原全网推广
  • 网站建设怎样把网页连接起来seo排名赚app是真的吗
  • 国家正规现货交易平台郑州seo网站有优化
  • 做经营网站怎么赚钱如何建立网站平台
  • 网站源码上传到空间以后怎么做免费推广有哪些
  • 网站开发各小组互评表电商网站建设报价
  • 电子元器件做哪个网站好上海百度推广
  • 网站建设找什么工作室2345浏览器网址
  • 合肥建设厅网站成都关键词自然排名
  • 做网站然后卖精美软文句子
  • 合肥网络公司网站建设山西搜索引擎优化
  • 网站建设税票怎么开最新热点新闻事件素材
  • 湖南网站制作电话网络策划是做什么的
  • 网站建设zb533公司seo助手
  • 龙华网站开发公司seo是什么意思职业
  • 周至县做网站企业培训师
  • 阿里云个人网站建设易搜搜索引擎
  • 曲靖网站建设dodoco搜狗seo培训
  • 广东公司网站建设百度seo优化教程
  • 接做网站需要问什么大搜推广
  • 鞍山制作公司网站的公司深圳市前十的互联网推广公司
  • 昆山建设银行交学费的网站自媒体是如何赚钱的
  • 网站经营模式黑马程序员培训机构在哪
  • led灯网站建设案例友情链接推广平台
  • 阿里巴巴建设网站首页搜索推广出价多少合适