
في هذه المقالة سأتحدث عن أربع مكتبات من شأنها أن تجعل حياتك أسهل. على الأقل آمل ذلك
1) نانويد
رابط جيثبهذه مكتبة صغيرة لها وظيفة واحدة فقط - إنشاء معرف فريد. يمكن أن يكون مفيدًا في كثير من الحالات ، مثل أي مولد آخر لتسلسلات الأحرف العشوائية. مزايا لا تقبل الجدل: البساطة والحجم الصغير -
143 بايت .
بالطبع ، إذا كنت تستخدم ، على سبيل المثال ، Lodash ، فيمكنك استخدام طريقة uniqueId ().
الاستخدام بسيط قدر الإمكان:
import nanoid from 'nanoid' size = 8 id = nanoid(size)
تحديث:لا تستخدم
أبدًا nanoid () لفهرسة القوائم أو أي عناصر مكررة أخرى
بمفتاح في ReactJS. نظرًا لأنك إذا استخدمت هذه الطريقة ، في كل مرة تقوم فيها بتحديث مكون React ، فسيعتقد أن جميع العناصر جديدة وستعيد تقديمها ، مما سيكون له تأثير سيئ جدًا على الأداء ويتناقض بشكل عام مع معنى المفتاح.
المزيد عن المفتاح:
responsejs.org/docs/lists-and-keys.html#keysمزيد من التفاصيل حول المفتاح:
habr.com/company/hh/blog/352150مثال على الاستخدام السيئ للغاية للنانو:
import nanoid from 'nanoid' import React from 'react' const ListDrinks = props=>{ const drinks = ['rum','bear','vodka'] return( <ul> {drinks.map((values)=>{
مثال على الاستخدام العادي للنانو:
import React, { Component } from 'react'; import nanoid from 'nanoid' class InputWithLabel extends Component { constructor(props){ super(props) this.id = nanoid() } render() { return ( <div> <label htmlFor={this.id}>My label</label> <input id={this.id} type="text"/> </div> ); } } export default InputWithLabel;
لقد تعلمت كيف أفعل ذلك من الصالحين في التعليقات ، التي هم منفصلون عنها ، شكرًا جزيلاً!
2) أسماء الفصول
رابط جيثبهذه المكتبة مخصصة للوحدة المشروطة البسيطة لأسماء الفئات. استخدامه ليس أكثر صعوبة من المكتبة السابقة.
مثال بسيط للاستخدام:
import cn from 'classnames' cn('menu','active')
بالنسبة لي شخصياً ، هذه المكتبة مطلوبة في أي تطبيق React. بالطبع ، حتى أجد أداة أكثر ملاءمة.
3) فورميك ويوب
رابط إلى جيثب (فورميك)رابط إلى github (Yup)في الحديث عن تبسيط شيء ما في React ، لا يسعك إلا أن تذكر العمل مع النماذج. ربما فهم كل مبتدئ مفاعل تفاعل في مرحلة ما كيف يكره العمل مع النماذج. عندما يأتي هذا الفهم ، يجدر البحث على الفور عن حبوب منع الحمل.
بالنسبة لي ، كانت هذه حبوب منع الحمل Formik و Yup.
Formik هي مكتبة تساعدك في العمل مع النماذج. يجعل من السهل استرداد البيانات من نموذج ، والتحقق من البيانات ، وعرض رسائل الخطأ ، والمزيد.
Yup هي مكتبة مدققة لنموذج أنشأناه نحن أنفسنا باستخدام Yup.
للحصول على وصف كامل إلى حد ما لهذه المجموعة ، هناك حاجة إلى مقال منفصل ، لكني سأحاول أن أري من عين الطائر ما هي.
يمكن تشغيل رمز مثال هنا:
مثالأولاً ، قم بإنشاء رسم تخطيطي:
import * as Yup from "yup"; const BasicFormSchema = Yup.object().shape({ email: Yup.string()
في الكود أعلاه ، حددنا دائرة ، وهي في الأساس كائن. لها ثلاثة مجالات: البريد الإلكتروني واسم المستخدم وكلمة المرور. حددنا بعض الشيكات لكل من الحقول.
إحدى طرق استخدام Formik هي عنصر <Formik /> ، الذي له العديد من الخصائص المختلفة ، أحدها يتم
تقديمه .
import React from "react"; import { Formik, Field, Form } from "formik"; import BasicFormSchema from "./BasicFormShema"; const SignUp = () => ( <div className="container"> <h1>Sign up</h1> <Formik // input- initialValues={{ email: "", username: "", password: "" }} // , validationSchema={BasicFormSchema} //, onsubmit onSubmit={values => { setTimeout(() => { alert(JSON.stringify(values, null, 2)); }, 500); }} //, //errors- //touched- , "", // , - render={({ errors, touched }) => ( <Form className="form-container"> <label htmlFor="email">Email</label> <Field name="email" placeholder="mtarasov777@gmail.com" type="email" /> {// // ", errors.email && touched.email && <div className="field-error">{errors.email}</div>} <label htmlFor="username">Username</label> <Field name="username" placeholder="snapoak" type="text" /> {errors.username && touched.username && ( <div className="field-error">{errors.username}</div> )} <label htmlFor="password">Password</label> <Field name="password" placeholder="123456qwe" type="password" /> {errors.password && touched.password && ( <div className="field-error">{errors.password}</div> )} <button type="submit">Submit</button> </Form> )} /> </div> ); export default SignUp;
الرمز بسيط ، لقد زودته بالتعليقات ، لذلك أعتقد أنه لا ينبغي أن تكون هناك أسئلة.
إذا نشأت ، فإن مستودع GitHub لديه وثائق ممتازة ، يمكنك أيضًا طرح الأسئلة في التعليقات.
هذه هي النهاية. أعلم أن هناك العديد من المكتبات الممتازة للعمل مع النماذج ، بعضها يبدو الأفضل بالنسبة لك ، وبعضها الأسوأ. لقد عبرت عن رأيي الشخصي هنا.
أتمنى أن هذه المقالة يمكن لأي شخص. يمكنك كتابة أمثلة للمكتبات المفيدة في التعليقات ، ويسعدني أن أتعلم شيئًا جديدًا.