67 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Functional Components vs Class Components | ||
|  | localeTitle: المكونات الوظيفية مقابل مكونات Class | ||
|  | --- | ||
|  | ## المكونات الوظيفية مقابل مكونات Class
 | ||
|  | 
 | ||
|  | هناك مكونان رئيسيان في React: | ||
|  | 
 | ||
|  | *   مكونات وظيفية | ||
|  | *   مكونات الطبقة | ||
|  | 
 | ||
|  | ## مكونات وظيفية
 | ||
|  | 
 | ||
|  | *   المكونات الوظيفية هي وظائف JavaScript الأساسية. هذه هي عادة وظائف الأسهم ولكن يمكن أيضا أن يتم إنشاؤها باستخدام الكلمة الأساسية `function` العادية. | ||
|  | *   يشار إليها أحيانًا بمكونات "البكم" أو "عديمة الجنسية" لأنها تقبل البيانات ببساطة وتعرضها بشكل ما ؛ هذا هو المسؤول الرئيسي عن تقديم واجهة المستخدم. | ||
|  | *   لا يمكن استخدام أساليب دورة الحياة التفاعلية (على سبيل المثال ، `componentDidMount` ) في المكونات الوظيفية. | ||
|  | *   لا توجد طريقة تجسيد مستخدمة في المكونات الوظيفية. | ||
|  | *   وهي مسؤولة بشكل أساسي عن واجهة المستخدم وهي عادةً ما تكون معروضة فقط (على سبيل المثال ، مكون زر). | ||
|  | *   يمكن للمكونات الوظيفية قبول الدعائم واستخدامها. | ||
|  | *   يجب تفضيل المكونات الوظيفية إذا لم تكن بحاجة إلى استخدام حالة React. | ||
|  | 
 | ||
|  |  `import React from "react";  | ||
|  |   | ||
|  |  const Person = props => (  | ||
|  |   <div>  | ||
|  |     <h1>Hello, {props.name}</h1>  | ||
|  |   </div>  | ||
|  |  );  | ||
|  |   | ||
|  |  export default Person;  | ||
|  | `  | ||
|  | 
 | ||
|  | ## مكونات الطبقة
 | ||
|  | 
 | ||
|  | *   تستفيد مكونات الفئة من فئة ES6 وتمتد فئة `Component` في React. | ||
|  | *   تُسمى أحيانًا المكونات "الذكية" أو "ذات الحالة" لأنها تميل إلى تطبيق المنطق والدولة. | ||
|  | *   يمكن استخدام أساليب دورة الحياة التفاعلية داخل مكونات الفئة (على سبيل المثال ، `componentDidMount` ). | ||
|  | *   يمكنك تمرير الدعائم لأسفل إلى مكونات الفصل والوصول إليها باستخدام `this.props` | ||
|  | 
 | ||
|  |  `import React, { Component } from "react";  | ||
|  |   | ||
|  |  class Person extends Component {  | ||
|  |   constructor(props){  | ||
|  |     super(props);  | ||
|  |     this.state = {  | ||
|  |       myState: true;  | ||
|  |     }  | ||
|  |   }  | ||
|  |   | ||
|  |   render() {  | ||
|  |     return (  | ||
|  |       <div>  | ||
|  |         <h1>Hello Person</h1>  | ||
|  |       </div>  | ||
|  |     );  | ||
|  |   }  | ||
|  |  }  | ||
|  |   | ||
|  |  export default Person;  | ||
|  | `  | ||
|  | 
 | ||
|  | ## معلومات اكثر
 | ||
|  | 
 | ||
|  | *   [React Components](https://reactjs.org/docs/components-and-props.html) | ||
|  | *   [مكونات وظيفية مقابل فئة](https://react.christmas/16) | ||
|  | *   [مقابل مقابل مكونات وظيفية عديم الحالة في رد الفعل](https://code.tutsplus.com/tutorials/stateful-vs-stateless-functional-components-in-react--cms-29541) | ||
|  | *   [الدولة ودورة الحياة](https://reactjs.org/docs/state-and-lifecycle.html) |