مقدمة إلى استخدام React فِي مكون Power Apps
إن React عبارة عن إطار عمل عميل قياسي لبناء واجهات المستخدم. وهو يوفر طريقة تعريفية لإنشاء واجهات مستخدم تفاعلية ويوفر آلية لتغليف المكونات لإنشاء واجهات مستخدم معقدة تدير حالات المكونات وشديدة التفاعل. نظراً لكتابة React فِي JavaScript، يمكنك استخدام إطار العمل هذا ضمن مكون Power Apps.
إذا لم تكن ملماً باستخدام React، فانتقل إلى React، الذي يوفر مجموعة كبيرة من الموارد التعليمية والموارد حول كيفية بناء مكونات React.
إعداد جهاز الكمبيوتر الخاص بك لمكونات التعليمات البرمجية
لإعداد الكمبيوتر لإنشاء مكونات التعليمات البرمجية، اتبع الخطوات التالية:
ثبّت Npm (يأتي مع Node.js) أو Node.js (يأتي مع npm). نوصي باستخدام إصدار (LTS) (دعم طويل الأمد).
ثبّت Visual Studio Code.
قم بتثبيت Build Tools لـ Visual Studio من تنزيلات Visual Studio.
Fluent UI
لقد كان تنفيذ Fluent UI، وهو عبارة عن مجموعة من أطر عمل UX التي يمكنك استخدامها لبناء تجارب سهلة تتناسب بسلاسة مع مجموعة واسعة من منتجات Microsoft، أحد التطورات الهامة التي حققتها Microsoft. يمكن استخدام Fluent UI فِي مكون التعليمات البرمجية لـ Power Apps بطريقة بسيطة كالإشارة إلى مكتباته، وهذا يوفر إصداراً خاصاً بـ React يمكنك استخدامه. لمزيد من المعلومات، راجع Fluent UI.
تطبيق عينة مكون FacePile
هام
قم بتنزيل الملف المضغوط باسم FacePileComponent.zip لاستخدامه مع هذا التمرين. قم بفك ملف zip.
في هذا المثال، ستقوم ببناء مكون يستخدم مكون FacePile Fluent UI. يُظهر FacePile قائمة بالوجوه أو الأحرف الأولى من الأسماء فِي بحث أفقي، حيث كل دائرة تمثل شخصاً.
هناك مثال عملي عن استخدام هذا البحث وهو سرد المساهمين فِي مقال أو سجل، مثل ما قد تراه فِي Microsoft Learn، كما يظهر فِي الصورة التالية.
إنشاء مشروع مكون جديد
لإنشاء مشروع مكون، اتبع هذه الخطوات:
أنشئ دليلاً ستنشئ فيه مكوناً خاصاً بك. في هذه العينة، ستضع المكون فِي C:\users\username\source\face-pile؛ ومع ذلك، يمكنك إنشاء دليلك الخاص. لإنشاء دليلك الخاص، تستخدم Visual Studio Code.
ابدأ تشغيل Visual Studio Code.
حدّد الجهاز الطرفي، وحدّد الجهاز الطرفي الجديد، وقم بتبديل Terminal shell إلى موجه الأوامر.
ملاحظة
إذا لم تكن معتادًا على الجهاز الطرفي فِي Visual Studio Code، فانتقل إلى أساسيات الجهاز الطرفي لمعرفة المزيد.
قم بإنشاء مجلد المصدر الخاص بك.
md \sourceقم بتغيير الدليل إلى المجلد المصدر.
cd \sourceمن الدليل المصدر، أنشئ دليلاً باسم face-pile.
md face-pileقم بتغيير الدليل إلى الدليل الذي قمت بإنشائه.
cd face-pileمن المفترض أن تكون الآن فِي الدليل الجديد الذي أنشأته.
قم بتهيئة مشروع المكون باستخدام Power Platform CLI بواسطة الأمر التالي.
pac pcf init --namespace Learn --name ReactFacePile --template field --framework Reactثبّت أدوات بناء المشروع باستخدام الأمر
npm install. قد تظهر بعض التحذيرات المعروضة؛ ولكن، يمكنك تجاهلها بأمان.npm installقم بتشغيل الأمر التالي لفتح المشروع فِي Visual Studio Code.
code -a .يجب أن يظهر المشروع كما فِي الصورة التالية.
تنفيذ منطق مكون التعليمات البرمجية
لتنفيذ منطق مكون التعليمات البرمجية، اتبع الخطوات التالية:
وسّع المجلد ReactFacePile وافتح الملف ControlManifest.Input.xml.
حدّد موقع عقدة الخاصية واستبدلها بـ XML التالي.
<property name="numberOfFaces" display-name-key="numberOfFaces_Display_Key" description-key="numberOfFaces_Desc_Key" of-type="Whole.None" usage="bound" required="false" />حدّد موقع الموارد وقم بإلغاء تعليقات css وresx.
تأكد من تحديد الملف ControlManifest.Input.xml ثم حدّد New Folder.
قم بتسمية المجلد الجديد components.
انتقل إلى المجلد حيث قمت باستخراج ملف FacePileComponent.zip الذي تم تنزيله وافتح مجلد FacePileComponent.
اسحب الملفات إلى داخل المجلد FacePileComponents، ثم قم بإفلاتها فِي مجلد components الذي أنشأته.
يجب أن يحتوي مجلد components الآن على ملفين.
افتح الملف Index.ts.
استبدل الاستيراد { HelloWorld, IHelloWorldProps } من "./HelloWorld"; مع جزء التعليمة البرمجية المتكررة هذا.
import { FacepileBasicExample, IFacepileBasicExampleProps } from "./components/Facepile" ;بعد الاستيراد، أضف الثابت التالي.
const DEFAULT_NUMBER_OF_FACES = 3;أضف جزء التعليمة البرمجية المتكررة قبل الدالة الإنشائية.
private props: IFacepileBasicExampleProps = { numberFacesChanged: this.numberFacesChanged.bind(this), };يجب أن تبدو التغييرات التي أجريتها مثل الصورة التالية.
حدّد موقع الأسلوب init وأضف جزء التعليمة البرمجية المتكررة التالية بعد السطر this.notifyOutputChanged = notifyOutputChanged;
this.props.numberOfFaces = context.parameters.numberOfFaces.raw || DEFAULT_NUMBER_OF_FACES;استبدل الأسلوب updateView بالأسلوب التالي.
public updateView(context: ComponentFramework.Context<IInputs>): React.ReactElement { if (context.updatedProperties.indexOf("numberOfFaces") > -1) { this.props.numberOfFaces = context.parameters.numberOfFaces.raw || DEFAULT_NUMBER_OF_FACES; } return React.createElement(FacepileBasicExample, this.props); }يجب أن يبدو الأسلوبين init وupdateView الآن مثل الصورة التالية.
استبدل الأسلوب getOutputs بالأسلوب التالي.
public getOutputs(): IOutputs { return { numberOfFaces: this.props.numberOfFaces, }; }أضف الأسلوب التالي بعد أسلوب destroy.
private numberFacesChanged(newValue: number) { if (this.props.numberOfFaces !== newValue) { this.props.numberOfFaces = newValue; this.notifyOutputChanged(); } }حدّد ملف وحفظ كل تغييراتك.
إضافة تصميم إلى مكون التعليمات البرمجية
لإضافة تصميم إلى مكون التعليمات البرمجية، اتبع الخطوات الآتية:
حدّد الملف ControlManifest.Input.xml ثم حدّد New Folder.
قم بتسمية المجلد الجديد css.
حدّد المجلد css الذي أنشأته وحدّد ملف جديد.
قم بتسمية الملف الجديد ReactFacePile.css.
افتح ملف ReactFacePile.css الجديد الذي أنشأته، والصق الجزء التعليمة البرمجية المتكررة لـ CSS التالية.
msFacepileExample { max-width: 300px; } .msFacepileExample .control { padding-top: 20px; } .msFacepileExample .ms-Dropdown-container, .msFacepileExample.ms-Slider { margin: 10px 0 10px 0; } .msFacepileExample .ms-Dropdown-container .ms-Label { padding-top: 0; } .msFacepileExample .ms-Checkbox { padding-top: 15px; } .exampleCheckbox { margin: 10px 0; } .exampleLabel { margin: 10px 0; }حدّد ملف واحفظ تغييراتك.
حدّد الملف ControlManifest.Input.xml وحدّد New Folder.
قم بتسمية المجلد الجديد strings.
انتقل إلى المجلد حيث قمت باستخراج ملف FacePileComponent.zip الذي تم تنزيله وافتح مجلد FacePileStrings.
اسحب ملف ReactFacePile.1033.resx ثم قم بإفلاته فِي مجلد strings الذي أنشأته.
يجب أن يحتوي مجلد strings الآن على الملف resx.
حدّد ملف واحفظ تغييراتك.
انتقل إلى الوحدة الطرفية وقم بتشغيل أمر البناء هذا.
npm run buildملاحظة
إذا تلقيت خطأ يفيد بأن JSX لم يتم تعريفه، فافتح الملف .eslintrc.json. في السطر 11:
"ComponentFramework": trueأضف فاصلة ثم سطراً جديداً بـ"JSX": true. في السطر 41: قم بتغييرJSX.ElementإلىReact.JSX.Element. احفظ التغييرات وكرر الأمر npm run build.يجب أن تكتمل عملية البناء بنجاح.
اختبر المكونات عن طريق تشغيل الأمر التالي.
npm startمن المفترض أن يفتح مفعّل الاختبار فِي نافذة متصفح جديدة.
يجب أن يبدو المكون الآن مثل الصورة التالية.
غيّر حجم الحاوية إلى 500 x 220 وانقل شريط التمرير إلى 5.
يجب أن يبدو المكون الآن مثل الصورة التالية. أغلق نافذة متصفح مفعّل الاختبار.
أغلق نافذة متصفح مفعّل الاختبار.
عد إلى الوحدة الطرفية وأوقف المراقب عن طريق الضغط على [CONTROL] + C.
اكتب Y ثم اضغط على [ENTER].
لمزيد من المعلومات، انتقل إلى تنفيذ مكون FacePile.