码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 「React」RSC 服务端组件


    前言

    RSC(React Server Components)是React框架的一个新特性,它允许开发者编写只在服务器端渲染的组件。与传统的服务器端渲染(SSR)不同,RSC的目标是提升性能和用户体验,同时减少客户端加载的JavaScript代码的体积。
    在这里插入图片描述

    使用示例

    如何在一个项目中使用React Server Components和客户端组件协同工作:

    服务端组件示例 (UserList.server.js)

    这个服务端组件负责从服务器获取用户列表,并将其渲染成无状态的HTML。

    // UserList.server.js
    import React from 'react';
    import { fetchUserList } from './api';
    
    function UserList() {
      const users = fetchUserList(); // 假设这是服务器端的数据获取函数
      return (
        
      {users.map(user => (
    • {user.name}
    • ))}
    ); } export default UserList;

    客户端组件示例 (UserPage.client.js)

    客户端组件包含状态和交互逻辑。例如,在此例中,组件响应用户的点击事件。

    // UserPage.client.js
    import React, { useState } from 'react';
    import UserDetails from './UserDetails.client';
    import UserList from './UserList.server';
    
    function UserPage() {
      const [selectedUserId, setSelectedUserId] = useState(null);
    
      const handleUserClick = (userId) => {
        setSelectedUserId(userId);
      };
    
      return (
        
    {selectedUserId && }
    ); } export default UserPage;

    在这个简单的场景中,UserPage.client.js 能够导入并且利用UserList.server.js,即使UserList是在服务器上渲染的。UserPage还管理着用户的选择状态,并根据该状态显示UserDetails组件。

    好处

    • 数据获取快,可以直接在Node端读取数据,塞给组件
    • 更安全,比如密钥等等不方便暴露给客户端
    • 服务器组件生成结果可缓存
    • 减少JS bundle包大小,服务器组件在客户端无需打包进JS
    • 更快的FCP
    • Streaming优化,html页面实际上是可以分为多个chunk输出给用户的
  • 相关阅读:
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    Flutter 最有用的 5 个优秀的依赖包
    【K8S系列】深入解析k8s 网络插件—kube-router
    【RocketMQ】数据的清理机制
    域名解析与记录
    基础 | 并发编程 - [导论 & volatile]
    rviz配置文件是什么
    摇骰子、抽奖转盘酒桌游戏 人生重启模拟器小程序源码分享-开通流量主躺着赚钱
    30天学习之-自动化测试
    开源数据集分享———猫脸码客
  • 原文地址:https://blog.csdn.net/Constantiny/article/details/139554704
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号