الفرق بين المراجعتين لصفحة: «Next.js/supported browsers features»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(6 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:المتصفحات والميزات المدعومة في Next.js}}</noinclude>
<noinclude>{{DISPLAYTITLE:المتصفحات والميزات المدعومة في Next.js}}</noinclude>
تدعم Next.js المتصفح IE11 وجميع المتصفحات الحديثة (Edge و Firefox و Chrome و Safari و Opera وغيرها) دون الحاجة إلى أية تهيئة إضافية.
تدعم Next.js '''المتصفحات الحديثة''' دون الحاجة إلى أية تهيئة إضافية وهي:


== موائمة الشيفرة لدعم المتصفحات المختلفة في Next.js ==
* Chrome 64+‎
تدفع Next.js صراحةً بشيفرات موائمة لازمة لدعم المتصفح IE11 كما تدفع بشيفرات موائمة مستخدمة على نطاق واسع  بما فيها:
* Edge 79+‎
* Firefox 67+‎
* Opera 51+‎
* Safari 12+‎


* [https://academy.hsoub.com/programming/javascript/%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84%D8%A7%D8%AA-%D9%85%D8%AA%D9%82%D8%AF%D9%85%D8%A9-%D9%84%D9%84%D9%88%D8%A7%D8%AC%D9%87%D8%A9-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9-fetch-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1297/ ()fetch]: يستبدل <code>whatwg-fetch</code> و <code>unfetch</code>
== توفير دعم لمختلف المتصفحات ==
* [https://academy.hsoub.com/programming/javascript/%D9%83%D8%A7%D8%A6%D9%86%D8%A7%D8%AA-url-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1298/ URL]: يستبدل حزمة (في واجهة Node.js البرمجية )
إن أردت استهداف إصدارات أو ميزات محددة من المتصفحات، توفر Next.js دعمًا لإضافة ضبط قائمة المتصفحات <code>[https://browsersl.ist/ browserslist]</code> ضمن الملف <code>package.json</code>، وتستخدم Next.js القائمة الافتراضية التالية:<syntaxhighlight lang="json">
* [[JavaScript/Object/assign|()Object.assign]]: يستبدل <code>object-assign</code> و <code>object.assign</code> و <code>core-js/object/assign</code>.
{
  "browserslist": [
    "chrome 64",
    "edge 79",
    "firefox 67",
    "opera 51",
    "safari 12"
  ]
}
</syntaxhighlight>


إن احتوت أية اعتمادية من اعتمادياتك على هذه الشيفرات فستُحذف تلقائيًا من نسخة الإنتاج لتفادي التكرار. ولتقليل حجم التجميعات، تحمل Next.js شيفرات الموائمة هذه للمتصفحات التي تحتاجها، بينما لن تراها في الأغلبية العظمى من البيانات المنقولة عبر ويب.
== توفير شيفرات الموائمة polyfills ==
تدفع Next.js صراحةً [https://github.com/vercel/next.js/blob/canary/packages/next-polyfill-nomodule/src/index.js بشيفرات موائمة polyfills مستخدمة على نطاق واسع] بما فيها:


=== شيفرات الموائمة من جانب الخادم ===
*[https://academy.hsoub.com/programming/javascript/%D8%A7%D8%B3%D8%AA%D8%B9%D9%85%D8%A7%D9%84%D8%A7%D8%AA-%D9%85%D8%AA%D9%82%D8%AF%D9%85%D8%A9-%D9%84%D9%84%D9%88%D8%A7%D8%AC%D9%87%D8%A9-%D8%A7%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A9-fetch-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1297/ ()fetch]: يستبدل <code>whatwg-fetch</code> و <code>unfetch</code>.
*[https://academy.hsoub.com/programming/javascript/%D9%83%D8%A7%D8%A6%D9%86%D8%A7%D8%AA-url-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1298/ URL]: يستبدل [[Node.js/url|حزمة url]] (في واجهة Node.js البرمجية ).
*[[JavaScript/Object/assign|()Object.assign]]: يستبدل <code>object-assign</code> و <code>object.assign</code> و <code>core-js/object/assign</code>.
 
إن احتوت شيفرتك أية شيفرة موائمة من هذه الشيفرات فستُحذف تلقائيًا من نسخة الإنتاج لتفادي التكرار. ولتقليل حجم التجميعات، تُحمِّل Next.js شيفرات الموائمة هذه للمتصفحات التي تحتاجها، بينما لن تراها في بقية الحالات.
 
== شيفرات الموائمة من جانب الخادم ==
تدفع Next.js بالدالة <code>()fetch</code> لموائمة الشيفرة في بيئة عمل على الخادم بالإضافة إلى بيئة العميل. وبإمكانك استخدام <code>()fetch</code> في الشيفرة التي تنفذها على الخادم (مثل <code>getStaticProps</code> أو <code>getServerSideProps</code>) دون الحاجة لاستخدام شيفرات موائمة مثل <code>isomorphic-unfetch</code> أو <code>node-fetch</code>.
تدفع Next.js بالدالة <code>()fetch</code> لموائمة الشيفرة في بيئة عمل على الخادم بالإضافة إلى بيئة العميل. وبإمكانك استخدام <code>()fetch</code> في الشيفرة التي تنفذها على الخادم (مثل <code>getStaticProps</code> أو <code>getServerSideProps</code>) دون الحاجة لاستخدام شيفرات موائمة مثل <code>isomorphic-unfetch</code> أو <code>node-fetch</code>.


== شيفرات موائمة مخصصة ==
== شيفرات موائمة مخصصة ==
إن احتاجت شيفرتك أو أية اعتمادية من اعتماديات npm إلى ميزات لا يدعمها المتصفح المستهدف، فلا بد من موائمة الشيفرة بنفسك.
إن احتاجت شيفرتك أو أية اعتمادية من اعتماديات npm إلى ميزات لا يدعمها المتصفح المستهدف (مثل متصفح IE 11)، فلا بد من موائمة الشيفرة بنفسك. عليك في هذه الحالات إضافة عبارة إدراج import (من المستوى الأعلى) لشيفرة الموائمة المحددة التي تحتاجها في [[Next.js/custom app|تطبيق App المخصص]] أو في المكوِّن المطلوب.
 
عليك في هذه الحالات إضافة عبارة إدراج import (من المستوى الأعلى) لشيفرة الموائمة المحددة التي تحتاجها في [[Next.js/custom app|تطبيقك المخصص]] أو في المكوّن المطلوب.


== دعم ميزات JavaScript في Next.js ==
== دعم ميزات JavaScript الحديثة ==
تتيح استخدام آخر ميزات صدرت للغة . إذ تدعم إضافة إلى ميزات ES6 مايلي:
تتيح Next.js استخدام آخر ميزات صدرت للغة JavaScript. إذ تدعم إضافة إلى ميزات ES6 ما يلي:


* الدوال غير المتزامنة ودوال الانتظار [[JavaScript/await|Async/await]] الإصدار (ES2017) من JavaScript
* الدوال غير المتزامنة ودوال الانتظار [[JavaScript/await|Async/await]] الإصدار ES2017 من JavaScript
* [https://github.com/tc39/proposal-object-rest-spread Object Rest/Spread Properties] الإصدار (ES2018) من  
* [https://github.com/tc39/proposal-object-rest-spread Object Rest/Spread Properties] الإصدار ES2018 من JavaScript
* دالة <code>()import</code> الديناميكية [https://github.com/tc39/proposal-dynamic-import ()Dynamic import] الإصدار (ES2020)
* دالة <code>()import</code> الديناميكية [https://github.com/tc39/proposal-dynamic-import ()Dynamic import] الإصدار ES2020 من JavaScript
* السلسلة الاختيارية [https://github.com/tc39/proposal-optional-chaining Optional Chaining] الإصدار (ES2020)
* التسلسل الاختياري [https://academy.hsoub.com/programming/javascript/%D8%A7%D9%84%D8%AA%D8%B3%D9%84%D8%B3%D9%84-%D8%A7%D9%84%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%D9%8A-%D9%84%D9%84%D9%88%D8%B5%D9%88%D9%84-%D9%84%D8%AE%D8%A7%D8%B5%D9%8A%D8%A7%D8%AA-%D9%83%D8%A7%D8%A6%D9%86-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1007/ Optional Chaining] الإصدار ES2020 من JavaScript
* الدمج اللاغي [https://github.com/tc39/proposal-nullish-coalescing Nullish Coalescing] الإصدار (ES2020)
* عامل الاستبدال اللاغي [https://academy.hsoub.com/programming/javascript/%D8%B9%D8%A7%D9%85%D9%84-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%A8%D8%AF%D8%A7%D9%84-%D8%A7%D9%84%D9%84%D8%A7%D8%BA%D9%8A-%D8%A7%D9%84%D8%AC%D8%AF%D9%8A%D8%AF-%D9%81%D9%8A-%D8%AC%D8%A7%D9%81%D8%A7%D8%B3%D9%83%D8%B1%D8%A8%D8%AA-r1005/ Nullish Coalescing] الإصدار ES2020 من JavaScript
* حقول الأصناف [https://github.com/tc39/proposal-class-fields Class Fields] والخاصيات الساكنة [https://github.com/tc39/proposal-static-class-features Static Properties] (جزء من اقتراحات المرحلة 3).
* حقول الأصناف [https://github.com/tc39/proposal-class-fields Class Fields] والخاصيات الساكنة [https://github.com/tc39/proposal-static-class-features Static Properties] (جزء من اقتراحات المرحلة 3).
* وغيرها الكثير.
* وغيرها الكثير.


=== دعم ميزات TypeScript ===
== دعم ميزات TypeScript ==
تدعم Next.js اللغة TypeScript بميزات مدمجة معها. اطلع على [[Next.js/typescript|الصفحة]] التي توثق هذا الموضوع  
تدعم Next.js اللغة [[TypeScript]] بميزات مدمجة معها. اطلع على [[Next.js/typescript|الصفحة]] التي توثق هذا الموضوع.


=== تخصيص إعدادات ناقل الشيفرة Babel ===
== تخصيص إعدادات ناقل الشيفرة Babel ==
يمكنك الاطلاع على الموضوع بشكل أوسع في [[Next.js/customizing babel config|الصفحة الخاصة]] به ضمن هذا التوثيق.
يمكنك الاطلاع على الموضوع بصورة أوسع في [[Next.js/customizing babel config|الصفحة الخاصة بتهيئة Babel]].


== المصادر ==
== المصادر ==


* الصفحة [https://nextjs.org/docs/basic-features/supported-browsers-features Supported Browsers and Features] في Next.js توثيق الرسمي
* الصفحة [https://nextjs.org/docs/basic-features/supported-browsers-features Supported Browsers and Features] في Next.js توثيق الرسمي
[[تصنيف:Next.js|{{SUBPAGENAME}}]]
[[تصنيف:Next.js Basic Features|{{SUBPAGENAME}}]]

المراجعة الحالية بتاريخ 16:36، 4 يناير 2023

تدعم Next.js المتصفحات الحديثة دون الحاجة إلى أية تهيئة إضافية وهي:

  • Chrome 64+‎
  • Edge 79+‎
  • Firefox 67+‎
  • Opera 51+‎
  • Safari 12+‎

توفير دعم لمختلف المتصفحات

إن أردت استهداف إصدارات أو ميزات محددة من المتصفحات، توفر Next.js دعمًا لإضافة ضبط قائمة المتصفحات browserslist ضمن الملف package.json، وتستخدم Next.js القائمة الافتراضية التالية:

{
  "browserslist": [
    "chrome 64",
    "edge 79",
    "firefox 67",
    "opera 51",
    "safari 12"
  ]
}

توفير شيفرات الموائمة polyfills

تدفع Next.js صراحةً بشيفرات موائمة polyfills مستخدمة على نطاق واسع بما فيها:

  • ()fetch: يستبدل whatwg-fetch و unfetch.
  • URL: يستبدل حزمة url (في واجهة Node.js البرمجية ).
  • ()Object.assign: يستبدل object-assign و object.assign و core-js/object/assign.

إن احتوت شيفرتك أية شيفرة موائمة من هذه الشيفرات فستُحذف تلقائيًا من نسخة الإنتاج لتفادي التكرار. ولتقليل حجم التجميعات، تُحمِّل Next.js شيفرات الموائمة هذه للمتصفحات التي تحتاجها، بينما لن تراها في بقية الحالات.

شيفرات الموائمة من جانب الخادم

تدفع Next.js بالدالة ()fetch لموائمة الشيفرة في بيئة عمل على الخادم بالإضافة إلى بيئة العميل. وبإمكانك استخدام ()fetch في الشيفرة التي تنفذها على الخادم (مثل getStaticProps أو getServerSideProps) دون الحاجة لاستخدام شيفرات موائمة مثل isomorphic-unfetch أو node-fetch.

شيفرات موائمة مخصصة

إن احتاجت شيفرتك أو أية اعتمادية من اعتماديات npm إلى ميزات لا يدعمها المتصفح المستهدف (مثل متصفح IE 11)، فلا بد من موائمة الشيفرة بنفسك. عليك في هذه الحالات إضافة عبارة إدراج import (من المستوى الأعلى) لشيفرة الموائمة المحددة التي تحتاجها في تطبيق App المخصص أو في المكوِّن المطلوب.

دعم ميزات JavaScript الحديثة

تتيح Next.js استخدام آخر ميزات صدرت للغة JavaScript. إذ تدعم إضافة إلى ميزات ES6 ما يلي:

  • الدوال غير المتزامنة ودوال الانتظار Async/await الإصدار ES2017 من JavaScript
  • Object Rest/Spread Properties الإصدار ES2018 من JavaScript
  • دالة ()import الديناميكية ()Dynamic import الإصدار ES2020 من JavaScript
  • التسلسل الاختياري Optional Chaining الإصدار ES2020 من JavaScript
  • عامل الاستبدال اللاغي Nullish Coalescing الإصدار ES2020 من JavaScript
  • حقول الأصناف Class Fields والخاصيات الساكنة Static Properties (جزء من اقتراحات المرحلة 3).
  • وغيرها الكثير.

دعم ميزات TypeScript

تدعم Next.js اللغة TypeScript بميزات مدمجة معها. اطلع على الصفحة التي توثق هذا الموضوع.

تخصيص إعدادات ناقل الشيفرة Babel

يمكنك الاطلاع على الموضوع بصورة أوسع في الصفحة الخاصة بتهيئة Babel.

المصادر