NativeScript یک فریمورک متن باز برای ساخت برنامههای نیتیو موبایل با جاوا اسکریپت است.
Ionic فریمورک مبتنی بر Angular، به صورت متن باز برای توسعه نرم افزار تلفن همراه بکار میرود که باعث میشود برنامههای نیتیو و پیشرفته وب با تکنولوژیهای بالا ساخته شود.
React Native یک فریمورک جاوا اسکریپت برای ساخت برنامههای تلفن همراه نیتیو است که از فریمورک React استفاده میکند.
انتخاب یکی از این 3 گزینه در دنیای صنعت رو به رشد امروز دشوار است.
تعیین نوع props و state در کامپوننتهای کلاسی
برای این منظور ابتدا فایل جدید src\components\BigC.tsx را ایجاد کرده و سپس توسط میانبر rcc، ساختار ابتدایی این کامپوننت را ایجاد میکنیم. در ادامه آنرا در کامپوننت src\App.tsx استفاده خواهیم کرد:
یکی از مزایای دیگر کار با تایپاسکریپت، فعال شدن intellisense مرتبط با افزونههایی مانند typescript hero و auto import است که نمونهای از آنرا در تصویر فوق مشاهده میکنید. فقط کافی است نام المان مرتبط را نوشت و سپس با استفاده از افزونههای یاد شده، به صورت خودکار import آنرا اضافه کرد.
پس از افزودن المان این کامپوننت، اگر سعی کنیم یک props را برای آن تعریف کنیم، بلافاصله خطای تعریف نشده بودن آنرا دریافت خواهیم کرد:
در اینجا نیز همانند کامپوننتهای تابعی، باید ابتدا نوع Props را تعیین کرد و تنها تفاوت آن، روش معرفی این type جدید به کامپوننت است:
import React, { Component } from "react"; type Props = { title: string; }; type State = { status: string; }; export default class BigC extends Component<Props, State> { render() { return ( <div> <h1>I'm in a class component</h1> </div> ); } }
مابقی نکات آن مانند props اختیاری و غیره، تفاوت خاصی را با کامپوننتهای تابعی که پیشتر بررسی کردیم، ندارند و یکی هستند.
مقایسهای بین Types و Interfaces
در این سری بیشتر از types استفاده شد، تا اینترفیسهای تایپاسکریپت. برای مثال بجای نوع زیر:
type State = { rValue: boolean; };
interface State { rValue: boolean; }
در تایپاسکریپت، از type بیشتر برای تعریف یک نوع جدید استفاده میشود، اما از اینترفیسها برای تعریف موجودیتها و entities. برای مثال از type میتوان برای تعریف نامی برای نوعهای primitive, union, intersection نیز استفاده کرد، اما اینترفیسها همواره برای تعیین نوع اشیاء مورد استفاده قرار میگیرند. نمیتوان دو نوع همنام را تعریف کرد، اما اگر دو اینترفیس هم نام را تعریف کنید، با هم یکی میشوند. نوعها برخلاف اینترفیسها قابلیت پیاده سازی نداشته و بیشتر جنبهی یک اعلان را دارند و ... در نهایت استفادهی از هر کدام بیشتر یک انتخاب شخصی است.
منابع تکمیلی
یکی از بهترین منابع تکمیلی استفادهی از TypeScript در React، مخزن کد react-typescript-cheatsheet است که به همراه مجموعهای از نکات مرتبط است.
چرا Babel خوبه ؟
کتابخانه jalali-angular-datepicker
React v17.0 منتشر شد
Today, we are releasing React 17! We’ve written at length about the role of the React 17 release and the changes it contains in the React 17 RC blog post. This post is a brief summary of it, so if you’ve already read the RC post, you can skip this one.
“I’ve written before about how React is the new default frontend framework, and how I don’t think most people using React on a regular basis realize quite how much it’s fallen behind.” High level thoughts about the React ‘bubble’ and some reasons to look beyond it, including a round up of some of the alternative options.
Ring UI library gives you the power of complex UI controls that have been developed at JetBrains over the years. It contains over 50 React controls, ranging from simple links and buttons to sophisticated controls, such as Date Picker or Data List.