Home > Web Front-end > JS Tutorial > React Server Functions

React Server Functions

Susan Sarandon
Release: 2024-12-24 17:44:14
Original
167 people have browsed it

Server Functions are functions referenced on the client but executed on the server.

Here’s an example:

'use client'

import { useActionState } from "react";

import { updateName } from "@/app/react-19-server-function/actions";


export default function Page() {

    const [error, submitAction, isPending] = useActionState(
        async (_previousState, formData) => {
            const error = await updateName(formData.get("name") as string);
            if (error) {
                return error;
            }

            return ""
        },
        "",
    );

    return <div>
        <h1>React 19: Server Functions</h1>
        <fieldset>
            <div>Name</div>

            <form action={submitAction}>
                <input type="text" name="name" />

                <button type="submit" disabled={isPending}>Save</button>
            </form>

            <div>
                {error && <p>{error}</p>}
            </div>
        </fieldset>
    </div>
}
Copy after login

Check my earlier post for more details on useActionState

Notice how updateName is imported.

import { updateName } from "@/app/react-19-server-function/actions";
Copy after login

and passed into useActionState.

This means that whenever the form is submitted, it runs submitAction, which then calls updateName.

Now, let’s check out updateName:

"use server";

export async function updateName(name) {
  if (name?.length < 2) {
    return "Name must be at least 2 characters.";
  }

  return "";
}
Copy after login

It’s a very simple function that checks the length of name. If it has less than 2 characters, it returns an error; otherwise, it returns an empty string, meaning no error.

Another thing to note is the directive: "use server". This tells React the function will be executed on the server, so it creates a reference the client can use.

The UI is super straightforward and looks like this:

React  Server Functions

If the form is submitted without any value, you’ll notice a POST network request with a few interesting details:

  • content-type: is text/x-component.

React  Server Functions

  • The payload is passed automatically, even though it’s empty.

React  Server Functions

  • The response is kind of like JSON.

React  Server Functions

Links

  • Codebase

Conclusion

Server Functions are functions that run on the server. The alternative is to manually use fetch to make a request to the backend and handle things like reading the status code and parsing the payload.

With Server Functions, you don’t need to worry about the communication part. Just create a function with the "use server" directive and import it into a client file, the framework takes care of the rest.

The above is the detailed content of React Server Functions. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template