混音:快速且有弹性的Web体验的全栈React框架
#javascript #网络开发人员 #初学者 #remix

Remix是一个全栈网络框架,提供了一系列功能和优化,以交付快速,光滑且有弹性的用户体验。

建立在React之上的Remix重点关注用户界面,并通过Web基本面向后工作。自2021年10月的正式发布以来,混音已获得了大量的吸引力,现在被广泛作为反应框架。

在本文中,我们将探讨混音的优势,设置混音应用程序,配置路由,利用混音加载程序进行服务器端数据获取,并以混音操作实现数据突变。

混音的优势

混音提供了一些有助于其日益普及的关键优势:

  • 闪电般的束缚捆绑:混音利用esbuild,非常快的JavaScript/CSS Bundler和Minifier,以进行有效的代码编译。
  • 渐进式增强:混音在服务器端采用渐进式增强方法,仅将必要的JavaScript,JSON和CSS内容发送到浏览器。这样可以确保更快的初始页面负载和改进的性能。
  • 动态服务器端渲染:混音启用动态服务器端渲染,允许服务器渲染React组件并将预渲染的标记发送给客户端。这可以增强SEO,首先减少绘画时间并改善整体用户体验。
  • 自动数据恢复:通过混音,您不必担心手动恢复突变的数据。该框架负责监督整个工作流程,并在需要时自动触发数据。
  • 完整的解决方案:混音通过集成诸如React路由器,服务器端渲染,生产服务器和后端优化之类的关键工具来提供端到端解决方案。这消除了对单独的配置和集成工作的需求。

设置混音应用

要开始混音,请按照以下步骤设置一个基本的应用程序:

  • 安装混音:运行命令 npx create-remix 并提供必要的输入,例如应用程序名称,类型,部署目标和语言偏好(JavaScript或Typecript)。
  • 应用结构:混音应用程序目录将在安装后包含必需文件和文件夹。 文件夹包含混音应用程序代码,包括入口点,根组件和路由。 public 文件夹托管静态资产,以及 remix.config.js jsconfig.json 等配置文件。

混音路由

混音的路由系统基于文件系统。在应用程序/路由目录中创建文件或目录以定义路由。文件或目录名称对应于路由URL。例如, app/routes/index.jsx 代表根路由(“/”)。还支持嵌套路线和动态参数。

混音加载器

在呈现UI组件之前,Remix Loader从后端获取数据。加载程序函数在服务器上导出和执行,从而实现数据预加载。组件可以使用 useloaderdata 挂钩访问加载数据。

为了证明这一点,我们将在混音环境中集成mySQL:

  • 安装MySQL客户端:使用NPM安装MySQL客户端,例如 npm i mysql
  • 配置加载程序函数:在 app/routes/index.jsx 内定义加载程序函数,建立了与MySQL数据库的连接并获取数据。使用 useloaderdata 挂钩访问组件中的加载数据。
  • 处理服务器端依赖关系:确保在加载程序函数或其他特定于服务器特定的文件中移动服务器端依赖项(如MySQL客户端)。这可以防止在客户端渲染期间,服务器代码不可用。

混音操作

混音提供 <形式> 组件来处理数据突变,例如创建,更新和删除数据。

提交表单时,将导出并调用操作功能。 Remix的 <形式> 组件没有使用传统的React事件处理程序,可以通过利用 Action 属性来简化数据突变。

动作函数在表单提交时调用,可以使用 useactionData 挂钩访问结果。

让我们使用混音操作实现一个数据突变示例

  • 更新UI:修改 app/routes/index.jsx 以包括 <形式> 组件。定义组件中的操作函数并处理表单提交。 UseactionData 挂钩捕获了动作的结果。
  • 执行数据突变:在操作功能中,提取表单提交数据,连接到MySQL数据库,然后更新必要的表。返回适当的成功或错误消息。
  • 渲染动作结果:使用 useactionData 挂钩检索动作结果并将其显示在UI中。

按照以下步骤,您可以使用混音操作无缝执行数据突变。该框架处理Remix App Server和后端之间的数据流,从而减少了样板代码的需求。

使用Remix React Framework

入门
  • 设置项目

通过运行 npm install -g create -remix

通过运行 npx create-remix 并遵循提示。

创建一个新的混音项目。

  • 定义路线

打开 app/routes/index.jsx 文件并使用混音的路由器函数定义路由。

// app/routes/index.jsx

import { useRouteData } from "@remix-run/react";

export function headers() {
  return { "Content-Type": "text/html" };
}

export function meta() {
  return {
    title: "Remix Example",
    description: "A simple Remix application",
  };
}

export function Loader() {
  const data = useRouteData();

  return (
    &lt;div&gt;
      &lt;h1&gt;Welcome to Remix!&lt;/h1&gt;
      &lt;p&gt;{data.message}&lt;/p&gt;
    &lt;/div&gt;
  );
}

export default function Index() {
  return &lt;Loader /&gt;;
}
  • 启动开发服务器

运行 npm运行dev 启动混音开发服务器。

  • 构建并运行生产服务器

运行 npm运行构建构建混音应用程序。

运行 npm start 启动混音生产服务器。

  • 访问应用程序

打开您的浏览器并导航到http://localhost:3000 查看Remix应用程序中的Remix应用程序。

您现在已经设置并运行了基本的混音应用程序。您可以通过添加更多路线,使用Remix的加载程序函数实现数据获取以及合并数据突变的混音操作来扩展它。

这是混音应用程序基本设置和结构的最小示例。

混音提供了您可以在其官方文档中探索的更多功能和功能。

可以随意进行实验并建立基础,以创建满足您需求的更复杂的混音应用程序。

建立一个具有混音的单页应用程序(SPA)

在开始之前,请确保您在计算机上安装Node.js 和NPM(节点软件包管理器)。

如果您刚刚开始,请关注此guide

  • 建立一个新项目。

为您的项目创建一个新目录,并使用命令行导航到它。

通过运行以下命令来初始化一个新的NPM项目:

npm init -y

  • 安装混音

通过运行以下命令在全球范围内安装混音及其CLI:

npm install -g create-remix

在您的项目目录中,使用以下命令脚手架新的混音应用程序:

npx create-remix@latest

这将为您的混音应用程序生成基本结构和文件。

  • 定义路线和页面。

打开 ./ app/doutes.js 文件,并使用Remix的路由语法定义您的应用程序路由。例如:

import { createRequestHandler } from '@remix-run/express';

export default createRequestHandler({
  getLoadContext() {
    // Define any context data you want to pass to your routes
    // This can include API keys, configuration, etc.
    return {};
  },
  async getRootContext(params) {
    // Perform any data fetching or initialization needed for your root component
    // This is where you can fetch initial data from APIs, databases, etc.
    return {};
  },
});

/app/pagages 目录中创建页面组件。每个页面组件代表 routes.js 中定义的特定路由。例如,在页面内创建 home.js 文件目录并定义您的主页组件。

  • 实现服务器渲染和客户端导航。

修改您的页面组件以使用Remix的组件和API进行渲染和客户端导航。混音提供了 link Usematch 之类的组件,以处理页面之间的导航。有关有效使用这些组件的更多详细信息,请参阅Remix的文档。

  • 数据加载和优化

在页面组件中实现数据加载和获取策略。您可以在页面组件中使用Remix的 load()函数来执行数据获取和渲染优化。

此功能使您可以在服务器或客户端指定哪些数据依赖关系。

export function meta() {
  return {
    title: 'Home',
    description: 'Welcome to my app',
  };
}

export function headers({ loaderHeaders }) {
  return {
    'Cache-Control': loaderHeaders.cacheControl,
  };
}

export function loader({ request }) {
  return fetch('https://api.example.com/data')
    .then((response) =&gt; response.json())
    .then((data) =&gt; {
      return {
        data,
        // Optional headers to control caching behavior
        loaderHeaders: {
          cacheControl: 'max-age=300', // Cache the response for 5 minutes
        },
      };
    });
}

export default function Home() {
  const data = useLoaderData();
  return (
    &lt;div&gt;
      &lt;h1&gt;{data.title}&lt;/h1&gt;
      &lt;p&gt;{data.description}&lt;/p&gt;
    &lt;/div&gt;
  );
}
  • 构建并运行您的应用程序。

运行以下命令来构建您的混音应用程序:

npm run build

通过运行以下内容启动混音开发服务器:

npm start

这将启动服务器,并允许您在浏览器中本地访问您的应用程序。

结论

混音是建立在React顶部的功能强大的全堆栈框架,服务器端渲染,生产服务器和后端优化。

通过设置混音应用程序,配置路线,利用混音加载程序进行服务器端数据获取以及通过混音操作实现数据突变,开发人员可以创建快速,光滑且有弹性的Web体验。

尽管混音仍然相对较新,但它在React社区中已广受欢迎。尽管有一些需要改进的领域,例如错误报告,但混音为基于React的Web应用程序提供了一个全面,有效的开发环境。

尝试一下Remix并亲身经历其利益。

经常询问的问题(FAQ)

什么是混音?

混音是一个有力的框架,用于构建具有服务器渲染初始内容,无缝客户端导航和优化数据加载的单页应用程序(SPA)。

混音与其他水疗框架有何不同?

混音通过提供服务器渲染方法结合最佳服务器端渲染和客户端交互性来区分自身。它允许在页面之间更快的初始内容渲染和无缝过渡,同时保留客户端交互的好处。

我可以在我喜欢的前端库或框架中使用混音吗?

是的,混音设计为灵活,可以与各种前端库(例如React,vue.js或Vanilla JavaScript)一起使用。它提供了一组组件和API,可以与您首选的前端工具集成。

混音支持来自API的数据?

是的,混音包含强大的数据加载功能。您可以使用Remix的 load()函数从API获取数据或在渲染过程中执行任何异步操作。

如何优化混音应用程序的性能?

混音提供了几种性能优化技术,例如服务器渲染初始内容,代码分裂和有效的数据获取。此外,您可以利用混音的缓存策略和服务器端渲染来提高应用程序的整体性能。

我可以将混音应用程序部署到我喜欢的托管平台吗?

绝对!混音应用程序可以部署到各种托管平台,包括AWS,Google Cloud或Vercel等云提供商。混音提供了一个构建命令,该命令生成准备部署的捆绑包。

如果您发现这篇文章令人兴奋,请在Learnhub Blog上发现此类额外的激动帖子;我们写了很多与技术有关的主题,从Cloud computingFrontend DevCybersecurityAIBlockchain

资源