React 从零开始学习(三)—— 数据渲染

2023-11-06

项目跑起来了,接下来实现最基本的功能:数据渲染。

渲染 state 中的数据

Components 文件夹里新建 Home.js 文件,定义要展示的文字以及文字样式:

import React, { Component } from 'react'
class Home extends Component {
  constructor() {
    super()
    this.state = {
      text: 'Hello,world!',
      style: {
        color: 'red'
      }
    }
  }
  render () {
    return (
      <div>
        <p>{this.state.text}</p>
        <p style={this.state.style}>{this.state.text}</p>
      </div>
    )
  }
}
export default Home

然后,在 App.js 中引入组件 Home.js

// import logo from './assets/images/logo.svg';
import './assets/css/App.css';
import Home from './components/Home'

function App () {
  return (
    <div className="App">
      <header className="App-header">
        {/* <img src={logo} className="App-logo" alt="logo" /> */}
        <p>
          文字 <code>src/App.js</code> Hello World!.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          https://reactjs.org
        </a>
      </header>
      <Home />
    </div>
  );
}

export default App;

可以看到,数据展示出来了:
在这里插入图片描述

向组件传递参数(Props)

然后,跟着官方文档做了一个小 demo,练习了通过 props 传递数据。

Components 文件夹里新建 Board.js 、Square.js 、Game.js 文件:

Square.js

import React, { Component } from 'react'
import '../assets/css/Square.css'
class Square extends Component {
  render () {
    return (
      <button className="square">
        {this.props.value}
      </button>)
  }
}
export default Square

其中,引入了样式文件 Square.css

.square {
  background: #fff;
  border: 1px solid #999;
  float: left;
  font-size: 24px;
  font-weight: bold;
  line-height: 34px;
  height: 34px;
  margin-right: -1px;
  margin-top: -1px;
  padding: 0;
  text-align: center;
  width: 34px;
}

Board.js

import React, { Component } from 'react'
import Square from './Square'
class Board extends Component {
  renderSquare (i) {
    return <Square value={i} />;
  }
  render () {
    const status = 'Next player:X';
    return (
      <div>
        <div className="status">{status}</div>
        <div className="board-row">
          {this.renderSquare(0)}
          {this.renderSquare(1)}
          {this.renderSquare(2)}
        </div>
        <div className="board-row">
          {this.renderSquare(3)}
          {this.renderSquare(4)}
          {this.renderSquare(5)}
        </div>
        <div className="board-row">
          {this.renderSquare(6)}
          {this.renderSquare(7)}
          {this.renderSquare(8)}
        </div>
      </div>
    )
  }
}
export default Board

Game.js

import React, { Component } from 'react'
import '../assets/css/Game.css'
import Board from './Board'
class Game extends Component {
  render () {
    return (
      <div className="game">
        <div className="game-board">
          <Board />
        </div>
        <div className="game-info">
          <div>{/* status*/}</div>
          <div>{/* ToDo*/}</div>
          <div style={{ "color": 'red' }}>{/* status*/}</div>
        </div>
      </div>
    )
  }
}
export default Game

其中引入了样式文件 Game.css

.game {
}

.game-info {
  margin-left: 20px;
}

上面就简单实现了通过 Props 来传递数据,展示效果如下:
在这里插入图片描述
F12 打开浏览器调试状态,还可以看到组件结构:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React 从零开始学习(三)—— 数据渲染 的相关文章

  • 在特定页面上执行 javascript 的正确“Rails”方式

    我试图在特定页面上运行 javascript 而我唯一的解决方案似乎是反模式 我有controller js内部生成的assets javascripts 我在用着gem jquery turbolinks 我的代码类似于以下内容 docu
  • 使用 Angular 指令禁用文本选择

    我正在学习 JavaScript 和 AngularJS 我想使用 Angular Directive 禁用文本选择 我有该函数的 JavaScript 代码 function clearSelection if document sele
  • Number.IsNaN() 比 isNaN() 更糟糕吗

    Soooooo isNaNJavaScript 显然被破坏了 比如 isNaN isNaN isNaN true isNaN false isNaN 0 返回 false 当它们看起来都是 不是数字 在 ECMAScript 6 中 草案包
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 如何使用 Javascript 设置查询字符串

    有没有办法使用 javascript 设置查询字符串的值 我的页面有一个过滤器列表 单击该列表时 它将更改右侧的页内结果窗格 我正在尝试更新 url 的查询字符串值 因此如果用户离开页面 然后单击 后退 按钮 他们将返回到最后一个过滤器选择
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 主页(网格)上的缩略图现在显得模糊。如何纠正?

    我不知道这看起来是否愚蠢 但从早上开始我就无法纠正这个突然出现在我的博客网站上的错误www candidopinions in http www candidopinions in 我有一个网格视图模板 其中博客文章中的特色图像作为调整大小
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 测量窗口偏移

    有没有一种方法可以测量 jQuery 中窗口的偏移量 以便我可以比较 固定 元素和相对定位元素的位置 我需要能够知道窗口滚动了多远 以便我可以使用该图来计算固定元素的高度 相对于视口顶部 和相对对象的高度 相对于顶部 之间的差异文件的内容

随机推荐

  • PyCharm 2023.1.2版本关闭后一直显示正在关闭项目

    最近下载了新的社区版本 出现了关闭程序就一直显示关闭项目的问题 然后各种找方法 试了如下几种 1 调整了一下编码方式 都0变为UTF 8 然后在自然语言添加了中文 也在编辑器那一行里 2 这个问题可能是由于Pycharm在关闭时正在运行一些
  • ubuntu下安装hadoop和eclipse

    hadoop安装方法 https www cnblogs com oskyhg p 9150000 html hadoop 安装教程 本教程由厦门大学数据库实验室 给力星出品 转载请注明 本教程适合于原生 Hadoop 2 包括 Hadoo
  • FloatingActionButton的使用

    FloatingActionButton FAB 是 Android 5 0 新特性 Material Design 中的一个控件 是一种悬浮的按钮 FloatingActionButton 是 ImageView 的子类 因此它具备Ima
  • JAVA代码保护工具DashO Pro v10.0.0 Beta 2重磅上线!更新DashO Gradle插件!

    DashO是一个Java和Android的混用程序 它提供企业级应用的加固和屏蔽 大大降低了知识产权盗窃 数据盗窃 盗版和篡改的风险 分层混淆 加密 水印 自动失效 反调试 反篡改 反仿真器 反挂钩 反根设备解决方案 为世界各地的应用程序提
  • unity Dropdown默认选择不选择任何选项

    当我们使用Dropdown下拉框时 有时不需要有默认选项 把 value设置为 1就可以了 但是用代码设置value 1是没有效果的
  • [Tools: ssh隧道] 跳板机连接内网服务器

    终端连接内网服务器 假设本地是A 内网跳板机是B 内网服务器是C 通常 从A连接C需要两次ssh 但通过以下ssh设置 可以简化连接过程 设置后 在终端键入ssh C 即可登录内网服务器C Host B HostName h User ds
  • C++智能指针实现类多态

    智能指针让我们不再操心内存泄露的问题 类多态是面向对象的一大特性 普通指针可以实现类多态 智能指针同样也能 请看代码 include
  • 70.语义分割和数据集

    在 之前讨论的目标检测问题中 我们一直使用方形边界框来标注和预测图像中的目标 本节将探讨语义分割 semantic segmentation 问题 它重点关注于如何将图像分割成属于不同语义类别的区域 与目标检测不同 语义分割可以识别并理解图
  • 重试C语言之C语言常量

    本章的学习目标如下 1 了解常量定义 2 常量数据类型 3 定义常量的方式 常量定义 常量是固定值 在C语言程序执行过程中不会发生改变 常量数据类型 常量可以使任何基本数据类型 比如 整形常量 浮点型常量 字符串常量 字符常量 也有枚举常量
  • Python删去本地指定类型文件

    Python删去本地指定类型文件 import os def Del File dir ftype files os listdir dir for f in files fl f split if fl 1 ftype os remove
  • 7-52 两个有序链表序列的交集 (20分)Java/C

    先是Java写的 用ArrayList求交集 最后一个测试点内存超限 package exercise import java util public class Main public static Object search Array
  • 面向对象编程的三大特征(封装,继承、多态)以及重写、MRO

    封装 特征一 根据需求将属性和方法封装到一个抽象的类中 在使用的时候 只要按照自己的需求去调用 不必了解实现的细节 封装有两方面的含义 1 将数值 属性 和行为 方法 包装到类对象中 在方法内部对属性进行操作 在类对象的外部调用方法 这样
  • 低通滤波器降噪matlab,基于MATLAB语音信号降噪处理方法研究

    2017 年 04 月下 青春岁月 415 一 语音信号的采集 为了表示取样的语音信号 我们采用的是离散时间模型 建立模型的基本准则是寻求一种可以表达一定物理状态下的数学关系 要使这种关系不仅具有强大的精确度 而且还要最简单 由于语音信号是
  • Java——Scanner的对象next()和nextLine()的区别

    Scanner对象 next 1 一定要读取到有效字符后才可以结束输入 2 对输入有效字符之前遇到的空白 next 方法会自动将其去掉 3 只有输入有效字符后才将其后面输入的空白作为分隔服或者结束符 4 next 不能得到带有空格的字符 p
  • 【光线追踪】 流程分析与实现的路径跟踪渲染器

    前言 搞光追是图形学的浪漫 先放张目前渲染图 分析了部分代码框架 后续补上完整 效果 左边黄色球是Blinn Phong进行着色 右边是Cook Torrance模型着色 BVH 1024x1024 200spp 2x2MSAA VS Om
  • SVR的简单实例应用

    在开始实例应用前先明确一般的操作步骤 导入数据 分割训练集和测试集 数据预处理 建模 模型测试与模型评价 话不多说 我们直接开始吧 导入数据 导入需要的库函数 import pandas as pd import numpy as np f
  • cve-1999-0614 ftp服务器版本信息可被获取,关于SolarWinds Serv-U远程代码执行漏洞(CVE-2021-35211)的预警提示...

    一 漏洞详情 Serv U是Windows平台和Linux平台的安全FTP服务器 FTPS SFTP HTTPS 是一个文件管理 文件传输和文件共享的解决方案 2021年7月13日 SolarWinds对外发布漏洞公告 其产品Serv U
  • useEffect 总结

    useEffect 有一个返回值 每次重新执行这个useEffect 或者组件销毁时 就会去执行return方法里面的内容 简而言之 在组件销毁或useEffect重新执行时 会执行返回值 useEffect return xxxxxx 2
  • System.in,System.out、转换流InputStreamReader,OutputStreamWriter、流操作基本规律

    读取键盘录入 package com readkey demo import java io IOException import java io InputStream public class ReadKey public static
  • React 从零开始学习(三)—— 数据渲染

    项目跑起来了 接下来实现最基本的功能 数据渲染 渲染 state 中的数据 在 Components 文件夹里新建 Home js 文件 定义要展示的文字以及文字样式 import React Component from react cl