Skip to content
This repository has been archived by the owner on Sep 17, 2024. It is now read-only.

Commit

Permalink
Merge pull request #251 from Ehsan-Home/persian(fa)
Browse files Browse the repository at this point in the history
Persian(fa) Package
  • Loading branch information
davedbase authored Oct 9, 2023
2 parents d088d16 + a6e2cb6 commit a2342eb
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions langs/fa/guides/comparison.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# مقایسه با بقیه کتابخانه ها

این بخش نمی تواند از برخی سوگیری ها دوری کند، اما ما فکر می کنیم مهم است که بدانیم راه حل سالید (Solid) در مقایسه با کتابخانه های دیگر در کجا قرار دارد. این قسمت مربوط به عملکرد نیست و فقط تفاوت فلسفه های کتابخانه ها را بیان میکند. برای ارزیابی عملکرد، به
[JS Framework Benchmark](https://github.com/krausest/js-framework-benchmark)
نگاه کنید.

## ری‌اکت (React)

ری اکت (React) تأثیر زیادی روی سالید (Solid) داشته است. سالید ایده جریان یک طرفه ارسال داده ها و تفکیک صریح خواندن و نوشتن در قلاب ها (Hooks) ها را از ری اکت (React) الهام گرفته است. سالید (Solid) ایده ها و نظرات قوی و جذابی در مورد چگونگی رویکرد مدیریت داده در توسعه برنامه دارد، اما به دنبال محدود کردن اجرای آن نیست.

با این حال، به همان اندازه که سالید (Solid) با فلسفه طراحی ری اکت (React) مطابقت دارد، اساساً متفاوت عمل می کند. ری اکت از درخت مجازی (virtual DOM)استفاده می کند ، درحالی که سالید از آن استفاده نمی کند. اجزا ری اکت از بالا به پایین چیده می شود که در آن متدهای رندر (render) و یافتن تفاوت ها بین درخت اصلی و مجازی (Diff) به طور مکرر فراخوانی می شوند. در عوض سالید هر جز برنامه را را یکبار به طور کامل رندر (render) می‌کند، گراف آن را می سازد و فقط دستور العمل هایی که منجر به تغییر ان جز می شود را اجرا میکند.

## توصیه برای تغییر پروژه های فعلی به سالید

مدل به روز رسانی سالید هیچ شباهتی به ری اکت یا حتی ری اکت و موب اکس (Mobx) ندارد. به جای اینکه اجزای تابع را به عنوان تابع `رندر` `(render)` در نظر بگیرید، آنها را به عنوان `سازنده` `(constructor)` در نظر بگیرید.

در Solid، پراپز (Props) و حافظه ها (stores) [پراکسی](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) هستند که برای ردیابی و به‌روزرسانی‌ها به دسترسی به مقادیر پراکسی ها تکیه میکنند .
مراقب دسترسی به متغیرهای پراپز یا دسترسی اولیه به پراپز باشید، که می تواند باعث شود پراپز و حافظه ها واکنش پذیری خود را از دست بدهند یا در زمان نامناسبی صدا زده شوند.

مقادیر نوع اولیه (Primitive ) در سالید همانند قلاب ها در ری اکت هیچ محدودیتی ندارند.
بنابراین میتوانید به آزادی از ان ها استفاده کنید و هر جا که نیاز شد ، ان ها را شاخه بدهید.

در سالید ، شما نیازی به اضافه کردن شناسه واحد برای هر آیتم لیست یا جدول یا هر لیست تکرار شونده همانند ری اکت نیستید.

در ری اکت وقتی یک ورودی یا اصطلاحا input داشته باشیم ، با استفاده از تابع onChange میتوانیم تغییرات ورودی را مشاهده کنیم. ولی این رفتار [پیش فرض](https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onchange) تابع onChange نیست. در سالید ، با استفاده از onInput ، میتوانید تغییرات یک ورودی را مشاهده نمایید.

در نهایت، هیچ درخت مجازی در سالید وجود ندارد، بنابراین APIهای ضروری درخت مجازی مانند «React.Children» و «React.cloneElement» در سالید معادلی ندارند. به جای ایجاد یا تغییر مستقیم عناصر درخت اجزا (DOM) ، مقاصد خود را به صورت شفاف بیان کنید.

## ویو جی اس (Vue.js)

سالید به ویژه از نظر طراحی از ویو جی اس (Vue.js) الهام نمی گیرد، اما از نظر روش پیاده سازی قابل مقایسه هستند. هر دوی آنها از پراکسی ها (Proxy) در سیستم تعاملی خود با ردیابی خودکار مبتنی بر خواندن استفاده می کنند. اما این همان جایی است که شباهت ها به پایان می رسد. سیستم تشخیص وابستگی در ویو جی اس فقط درخت اجزا (DOM) و اجزا (Component) مجازی خود را تغذیه می کند، در حالی که سالید سیستم خود را تا رسیدن به درخت اجزا به صورت جز جز نگه می دارد.

این فایل در حال به روز رسانی می باشد...

0 comments on commit a2342eb

Please sign in to comment.