اگر پیشتر با React کار کرده باشید، احتمالا چنین پیام خطایی را دریافت کردهاید:
در اینجا React عنوان میکند که هر عنصر از لیستی را که در حال نمایش آن هستید، باید به همراه یک key، ارائه دهید. اما ... این key چیست؟
زمانیکه حالت کامپوننتی تغییر میکند (شیء یا اشیایی که به عناصر UI متصل هستند، تغییر میکنند)، React، درخت جدیدی از اشیایی را که باید رندر شوند، تولید میکند. اکنون React باید محاسبه کند که چه عناصری نسبت ...
با استفاده از Blazor میتوان برنامههای وب تعاملی را با کمک زبان #C تهیه کرد که پیشتر برای نوشتن آنها به جاوا اسکریپت نیاز بود. به این ترتیب میتوان برای تهیهی قسمتهای front-end و backend پروژهی خود، از زبانی که به آن تسلط دارید استفاده کنید. یکی از مزایای آن امکان به اشتراک گذاری کدهای سمت سرور و کلاینت است؛ با توجه به اینکه هر دو به یک زبان تهیه میشوند. وضعیت توسعهی برنامههای وب، پیش از ارائهی Blazor
عموما برای ...
فرض کنید اکشن متد Web API شما قرار است اطلاعات رکوردی را بازگشت دهد: using Microsoft.AspNetCore.Mvc;
namespace Core3xWebApi.Controllers
{
[ApiController]
[Route("[controller]")]
public class HomeController : ControllerBase
{
[HttpGet]
public ActionResult<string> Get()
{
return null;
}
}
}
و در این حالت خاص، خروجی کوئری مدنظر، نال است ...
با ارائهی React Hooks، استفادهی از کامپوننتهای کلاسی، کمتر و کمتر شدهاند. اما جهت تکمیل و خاتمهی سری جاری، این نوع را نیز در این قسمت بررسی میکنیم. تعیین نوع props و state در کامپوننتهای کلاسی
برای این منظور ابتدا فایل جدید src\components\BigC.tsx را ایجاد کرده و سپس توسط میانبر rcc، ساختار ابتدایی این کامپوننت را ایجاد میکنیم. در ادامه آنرا در کامپوننت src\App.tsx استفاده خواهیم کرد:
یکی از م ...
پیشتر در مطلب « React 16x - قسمت 33 - React Hooks - بخش 4 - useContext Hook » با هوک useContext آشنا شدیم. در این قسمت میخواهیم نکات تایپاسکریپتی آنرا بررسی کنیم. ایجاد UserContext
فرض کنید برای انتقال دادههای کاربر وارد شدهی به سیستم، از روش انتقال props از بالاترین کامپوننت موجود در component tree به پایینترین کامپوننت آن، نیاز است از Context استفاده کنیم. به همین جهت فایل جدید src\contexts\userContext.tsx را با ...
در این قسمت قصد داریم یک هوک سفارشی را ایجاد کرده و نوعهای آنرا توسط TypeScript مشخص کنیم. همچنین در این بین از هوک useEffect هم استفاده خواهیم کرد؛ هرچند این هوک، نکات تایپاسکریپتی خاصی را به همراه ندارد. ایجاد هوک سفارشی useClickOutside
برای این منظور فایل جدید src\components\useClickOutside.tsx را ایجاد کرده و به صورت زیر تکمیل میکنیم: import { useEffect } from "react";
const useClickOutside = (ref, handl ...
هوک استاندارد useReducer، یک نمونهی پیچیدهتر هوک useState، برای مدیریت حالت است؛ با ساختاری شبیه به Redux، اما تنها مخصوص یک کامپوننت. هوک useReducer شبیه به یک نسخهی کوچک و محلی Redux است. در این قسمت، نحوهی تعیین نوعهای قسمتهای مختلف آنرا با TypeScript بررسی میکنیم.
ایجاد کامپوننت جدید ReducerButtons
برای توضیح مفاهیم این قسمت، فایل جدید src\components\ReducerButtons.tsx را به همراه محتوای زیر ایجاد میکن ...
پس از بررسی روش تعیین نوعهای خواص props در قسمتهای قبل ، اکنون نوبت به بررسی روش تعیین نوعهای انواع React Hooks است. در این قسمت دو هوک پرکاربرد useState و useRef را بررسی میکنیم.
روش تعیین نوع useState Hook
برای این منظور در ابتدا فایل جدید src\components\Input.tsx را ایجاد کرده و به صورت زیر تکمیل میکنیم: import React, { useState } from "react";
export const Input = () => {
const [name, setN ...
در قسمت قبل ، نوع توابع ارسالی از طریق props را تعیین کردیم. فرض کنید در همان مثال میخواهیم بجای ارسال یک رشته به فراخوان کامپوننت تعریف شده، اصل رخداد واقع شده را ارسال کنیم. به همین جهت onClick دریافتی را مستقیما به رخداد onClick، نسبت میدهیم: export const Button = ({ onClick }: Props) => {
return <button onClick={onClick}>Click Me</button>;
};
در این حالت بلافاصله با خطای زیر مواجه خواهیم شد که عنوان م ...
در قسمت قبل با معرفی نوع props توسط TypeScript، مجبور به تکمیل اجباری تک تک آنها شدیم؛ اما در React میتوان props را به صورت اختیاری و یا با مقادیری پیشفرض نیز تعریف کرد.
روش تعیین props پیشفرض توسط TypeScript
اگر بخواهیم توسط روشهای خود React، مقادیر پیشفرض props را تعیین کنیم، میتوان از defaultProps به صورت زیر با تعریف یک شیء جاوا اسکریپتی از پیش مقدار دهی شده، استفاده کرد: Head.defaultProps = {
...