中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

邢臺網(wǎng)站建設(shè)要多少錢揚州百度關(guān)鍵詞優(yōu)化

邢臺網(wǎng)站建設(shè)要多少錢,揚州百度關(guān)鍵詞優(yōu)化,湘潭市高新建設(shè)局網(wǎng)站,營銷型網(wǎng)站建設(shè)系統(tǒng)參考文檔:react18.3.1官方文檔 一些概念: React 的 Canary 和 Experimental 頻道是 React 團隊用于發(fā)布和測試新功能的渠道。 useActionState useActionState 是一個可以根據(jù)某個表單動作的結(jié)果更新 state 的 Hook。 const [state, formAction, isPe…

參考文檔:react@18.3.1官方文檔

一些概念:
React 的 Canary 和 Experimental 頻道是 React 團隊用于發(fā)布和測試新功能的渠道。

useActionState

useActionState 是一個可以根據(jù)某個表單動作的結(jié)果更新 state 的 Hook。

const [state, formAction, isPending] = useActionState(fn, initialState, permalink?);

參數(shù)

  • fn:當(dāng)按鈕被按下或者表單被提交時觸發(fā)的函數(shù)。當(dāng)函數(shù)被調(diào)用時,該函數(shù)會接收到表單的上一個 state(初始值為傳入的 initialState 參數(shù),否則為上一次執(zhí)行完該函數(shù)的結(jié)果)作為函數(shù)的第一個參數(shù),余下參數(shù)為普通表單動作接到的參數(shù)。
  • initialState :state 的初始值。任何可序列化的值都可接收。當(dāng) action 被調(diào)用一次后該參數(shù)會被忽略。
  • 可選的permalink :通常是一個布爾值或字符串,用于指示是否將當(dāng)前的狀態(tài)與 URL 進行關(guān)聯(lián)。如果 permalink 為 true,useActionState 可能會將狀態(tài)信息保存到 URL 中,允許用戶在刷新頁面或分享鏈接時保留當(dāng)前的表單狀態(tài)。

返回

  • state:當(dāng)前的 state。第一次渲染期間,該值為傳入的 initialState 參數(shù)值。在 action 被調(diào)用后該值會變?yōu)?action 的返回值。
  • formAction:通常是一個函數(shù),用于處理表單的提交或其他動作。它封裝了提交表單所需的邏輯,可以通過調(diào)用這個函數(shù)來觸發(fā)與服務(wù)器的交互或狀態(tài)更新。調(diào)用 formAction 后,useActionState 會根據(jù) fn 的執(zhí)行結(jié)果更新 state 和 isPending,從而反映最新的狀態(tài)。
  • isPending:指示當(dāng)前的操作(通常是表單提交或其他異步操作)是否正在進行中

用法
假設(shè)我們要實現(xiàn)這樣一個功能:
在這里插入圖片描述
點擊Submit,如果First Name值為空,提示:Name is required,如果不為空,提示:User save來模擬表單提交。
如果使用useState來實現(xiàn)
在這里插入圖片描述

在這里插入圖片描述在這里插入圖片描述
如果使用useActionState來實現(xiàn)

"use client";import { useActionState } from "react";
import { saveUser } from "@/lib/actions";
export default function Home() {const [data, action, isPending] = useActionState(saveUser, undefined);return (<form style={{ display: "flex", flexDirection: "column" }} action={action}><label htmlFor="firstName">First Name</label><input id="firstName" name="firstName" /><button disabled={isPending} style={{ marginTop: ".5rem" }}>{" "}Submit</button>{data?.error && <span style={{ color: "red" }}>{data?.error}</span>}{data?.message && <span style={{ color: "green" }}>{data?.message}</span>}</form>);
}
"use server";
export async function saveUser(previousState: unknown, formData: FormData) {// Do some fetch request to save user to databaseconst firstName = formData.get("firstName") as string;await wait(1000);// Do some fetch request to save user to database await wait(1000)if (firstName === "") {return { error: "Name is required" };}return { message: "User saved" };
}function wait(duration: number) {return new Promise((res) => {setTimeout(res, duration);});
}

useActionState 返回一個包含以下值的數(shù)組:

  1. 該表單的 當(dāng)前 state,初始值為提供的 初始 state,當(dāng)表單被提交后則改為傳入的 action 的返回值。
  2. 傳入 <form> 標(biāo)簽的 action 屬性的 新 action。
  3. 一個 pending state,可以在處理 action 的過程中使用它。

表單被提交后,傳入的 action 函數(shù)會被執(zhí)行。返回值將會作為該表單的新的 當(dāng)前 state。

傳入的 action 接受到的第一個參數(shù)將會變?yōu)樵摫韱蔚?當(dāng)前 state。當(dāng)表單第一次被提交時將會傳入提供的 初始 state,之后都將傳入上一次調(diào)用 action 函數(shù)的返回值。余下參數(shù)與未使用 useActionState 前接受的參數(shù)別無二致。

注意
useActionState Hook 當(dāng)前僅在 React Canary 與 experimental 渠道中可用。此外,需要一款完全支持 React 服務(wù)器組件 特性的框架才可以使用 useActionState 的所有特性。

在早期的 React Canary 版本中,這個 API 是 React DOM 的一部分,稱為 useFormState。

  • 在支持 React 服務(wù)器組件的框架中使用該功能時,useActionState 允許表單在服務(wù)器渲染階段時獲得部分交互性。當(dāng)不使用服務(wù)器組件時,它的特性與本地 state 相同。

  • 與直接通過表單動作調(diào)用的函數(shù)不同,傳入 useActionState 的函數(shù)被調(diào)用時,會多傳入一個代表 state 的上一個值或初始值的參數(shù)作為該函數(shù)的第一個參數(shù)。

useFormStatus

useFormStatus 是一個提供上次表單提交狀態(tài)信息的 Hook。

const { pending, data, method, action } = useFormStatus();

參數(shù)
useFormStatus 不接收任何參數(shù)
返回
useFormStatus 返回一個包含以下屬性的 status 對象:

  • pending:布爾值。如果為 true,則表示父級<form>正在等待提交;否則為 false。
  • data:實現(xiàn)了 FormData interface 的對象,包含父級<form>正在提交的數(shù)據(jù);如果沒有進行提交或沒有父級 <form>,它將為 null。
  • method:字符串,可以是 ‘get’ 或 ‘post’。表示父級 <form> 使用 GET 或 POST HTTP 方法 進行提交。默認情況下,<form> 將使用 GET 方法,并可以通過 method 屬性指定。
  • action:一個傳遞給父級 <form> 的 action 屬性的函數(shù)引用。如果沒有父級 <form>,則該屬性為 null。如果在 action 屬性上提供了 URI 值,或者未指定 action 屬性,status.action 將為 null。

用法

示例:使用從 useFormStatus 返回的狀態(tài)信息中的 data 屬性來顯示用戶正在提交的數(shù)據(jù)是什么。
UsernameForm.js:

import {useState, useMemo, useRef} from 'react';
import {useFormStatus} from 'react-dom';export default function UsernameForm() {const {pending, data} = useFormStatus();return (<div><h3>請求用戶名:</h3><input type="text" name="username" disabled={pending}/><button type="submit" disabled={pending}>提交  </button><br /><p>{data ? `請求 ${data?.get("username")}...`: ''}</p></div>);
}

App.js

import UsernameForm from './UsernameForm';
import { submitForm } from "./actions.js";
import {useRef} from 'react';export default function App() {const ref = useRef(null);return (<form ref={ref} action={async (formData) => {await submitForm(formData);ref.current.reset();}}><UsernameForm /></form>);
}

actions.js

export async function submitForm(query) {await new Promise((res) => setTimeout(res, 2000));
}

在這里插入圖片描述

注意

  • useFormStatus Hook 必須從在 內(nèi)渲染的組件中調(diào)用。
  • useFormStatus 僅會返回父級 的狀態(tài)信息。它不會返回同一組件或子組件中渲染的任何 的狀態(tài)信息。

總結(jié)

useActionState鉤子旨在無縫處理服務(wù)器操作。當(dāng)您將服務(wù)器操作傳遞給 useActionState 時,它將返回一個包含錯誤(或狀態(tài))、isPending 狀態(tài)和操作本身的對象。此設(shè)置對于管理表單提交和在返回結(jié)果之前跟蹤加載狀態(tài)特別有用。

useFormStatus鉤子旨在讓您深入了解表單的當(dāng)前狀態(tài),例如了解表單是否處于 “submitting” 狀態(tài)。這對于顯示 UI 元素(如加載指示器)或阻止多個表單提交(直到當(dāng)前提交完成)特別有用

http://www.risenshineclean.com/news/972.html

相關(guān)文章:

  • 境外網(wǎng)站開發(fā)北京it培訓(xùn)機構(gòu)哪家好
  • 做視頻能賺錢的網(wǎng)站seoheuni
  • 如何注冊公司微信公眾號網(wǎng)站seo系統(tǒng)
  • 國外做建材的網(wǎng)站有哪些手機端競價惡意點擊能防止嗎
  • 深圳做h5網(wǎng)站設(shè)計百度關(guān)鍵詞排名批量查詢工具
  • 做網(wǎng)站模塊百度一下首頁極簡版
  • 福州網(wǎng)站建設(shè)公司哪家好推廣優(yōu)化師
  • dz網(wǎng)站收款即時到賬怎么做的保定網(wǎng)站建設(shè)報價
  • 貝爾利網(wǎng)站網(wǎng)絡(luò)推廣內(nèi)容
  • 描述建設(shè)一個網(wǎng)站的具體步驟制作網(wǎng)站
  • 開發(fā)一個網(wǎng)站多少錢?上海seo關(guān)鍵詞優(yōu)化
  • 做網(wǎng)站找云無限seo查詢在線
  • 基于ASP與Access數(shù)據(jù)庫的網(wǎng)站開發(fā)東莞網(wǎng)絡(luò)推廣托管
  • 做高效能的父母網(wǎng)站金華seo扣費
  • 幫人做網(wǎng)站要怎么賺錢嗎臨沂seo全網(wǎng)營銷
  • 深圳做自適應(yīng)網(wǎng)站海外建站
  • 怎樣做網(wǎng)站呢河南靠譜seo電話
  • 做平面設(shè)計的一般瀏覽什么網(wǎng)站百度關(guān)鍵詞怎么做排名
  • 湖北可以做網(wǎng)站方案的公司百度軟件應(yīng)用中心
  • 石家莊seo網(wǎng)站優(yōu)化公司b2b外鏈代發(fā)
  • 微信公眾號怎么做網(wǎng)站的怎么學(xué)互聯(lián)網(wǎng)怎么賺錢
  • asp 做網(wǎng)站的缺點世界排名前十位
  • 小語種網(wǎng)站建設(shè)鎮(zhèn)江市網(wǎng)站
  • 做吃穿住行網(wǎng)站seo提升排名
  • 網(wǎng)站建設(shè)新零售上海百度
  • 上海網(wǎng)站備案流程app下載注冊量推廣平臺
  • wordpress頁面的排序長沙百家號seo
  • 江陰 網(wǎng)站開發(fā)新東方烹飪學(xué)校學(xué)費價目表
  • 旅游網(wǎng)站建設(shè)內(nèi)容網(wǎng)站搜索排名優(yōu)化怎么做
  • 網(wǎng)站開發(fā)中的網(wǎng)頁上傳和網(wǎng)站發(fā)布網(wǎng)站點擊量與排名