الفرق بين المراجعتين لصفحة: «React/react without es6»
< React
Kinan-mawed (نقاش | مساهمات) أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:React بدون ES6}}</noinclude>' |
Kinan-mawed (نقاش | مساهمات) لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:React بدون ES6}}</noinclude> | <noinclude>{{DISPLAYTITLE:React بدون ES6}}</noinclude> | ||
نُعرِّف عادةً مُكوّنات React كأصناف JavaScript مُجرَّدة:<syntaxhighlight lang="javascript"> | |||
class Greeting extends React.Component { | |||
render() { | |||
return <h1>أهلًا {this.props.name}</h1>; | |||
} | |||
} | |||
</syntaxhighlight>إن لم تكن تستخدم ES6 بعد، فبإمكانك استخدام الوحدة <code>create-react-class</code> بدلًا من ذلك:<syntaxhighlight lang="javascript"> | |||
var createReactClass = require('create-react-class'); | |||
var Greeting = createReactClass({ | |||
render: function() { | |||
return <h1>أهلًا {this.props.name}</h1>; | |||
} | |||
}); | |||
</syntaxhighlight>تُشبِه واجهة برمجة التطبيقات لأصناف ES6 الصنف <code>createReactClass()</code> مع بعض الاستثناءات. | |||
== تعريف الخاصيات الافتراضية == | |||
تُعرَّف الخاصيّات الافتراضيّة <code>defaultProps</code> في أصناف ودوال ES6 كخاصيّة ضمن المُكوّن نفسه:<syntaxhighlight lang="javascript"> | |||
class Greeting extends React.Component { | |||
// ... | |||
} | |||
Greeting.defaultProps = { | |||
name: 'Mary' | |||
}; | |||
</syntaxhighlight>أمّا باستخدام <code>createReactClass()</code> فتحتاج لتعريف الدالة <code>getDefaultProps()</code> كدالة ضمن الكائن المُمرَّر:<syntaxhighlight lang="javascript"> | |||
var Greeting = createReactClass({ | |||
getDefaultProps: function() { | |||
return { | |||
name: 'Mary' | |||
}; | |||
}, | |||
// ... | |||
}); | |||
</syntaxhighlight> | |||
== تعيين الحالة المبدئية == | |||
في أصناف ES6 تستطيع تعريف الحالة المبدئية عن طريق تعيين <code>this.state</code> في الدالة البانية:<syntaxhighlight lang="javascript"> | |||
class Counter extends React.Component { | |||
constructor(props) { | |||
super(props); | |||
this.state = {count: props.initialCount}; | |||
} | |||
// ... | |||
} | |||
</syntaxhighlight>يجب عليك مع الدالة <code>createReactClass()</code> تزويدها بتابع <code>getInitialState</code> منفصل والذي يُعيد الحالة المبدئية:<syntaxhighlight lang="javascript"> | |||
var Counter = createReactClass({ | |||
getInitialState: function() { | |||
return {count: this.props.initialCount}; | |||
}, | |||
// ... | |||
}); | |||
</syntaxhighlight> |
مراجعة 17:30، 14 أغسطس 2018
نُعرِّف عادةً مُكوّنات React كأصناف JavaScript مُجرَّدة:
class Greeting extends React.Component {
render() {
return <h1>أهلًا {this.props.name}</h1>;
}
}
إن لم تكن تستخدم ES6 بعد، فبإمكانك استخدام الوحدة create-react-class
بدلًا من ذلك:
var createReactClass = require('create-react-class');
var Greeting = createReactClass({
render: function() {
return <h1>أهلًا {this.props.name}</h1>;
}
});
تُشبِه واجهة برمجة التطبيقات لأصناف ES6 الصنف createReactClass()
مع بعض الاستثناءات.
تعريف الخاصيات الافتراضية
تُعرَّف الخاصيّات الافتراضيّة defaultProps
في أصناف ودوال ES6 كخاصيّة ضمن المُكوّن نفسه:
class Greeting extends React.Component {
// ...
}
Greeting.defaultProps = {
name: 'Mary'
};
أمّا باستخدام createReactClass()
فتحتاج لتعريف الدالة getDefaultProps()
كدالة ضمن الكائن المُمرَّر:
var Greeting = createReactClass({
getDefaultProps: function() {
return {
name: 'Mary'
};
},
// ...
});
تعيين الحالة المبدئية
في أصناف ES6 تستطيع تعريف الحالة المبدئية عن طريق تعيين this.state
في الدالة البانية:
class Counter extends React.Component {
constructor(props) {
super(props);
this.state = {count: props.initialCount};
}
// ...
}
يجب عليك مع الدالة createReactClass()
تزويدها بتابع getInitialState
منفصل والذي يُعيد الحالة المبدئية:
var Counter = createReactClass({
getInitialState: function() {
return {count: this.props.initialCount};
},
// ...
});