الفرق بين المراجعتين لصفحة: «ReactNative/style»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التنسيق والأنماط في React Native}}</noinclude> ==الأنماط== في React Native، لا تُستخدَم لغةٌ أو بن...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التنسيق والأنماط في React Native}}</noinclude> | <noinclude>{{DISPLAYTITLE:التنسيق والأنماط في React Native}}</noinclude> | ||
ينسَّق التطبيق في React Native باستخدام [[JavaScript]] ، تقبل جميع المكوّنات الأساسيّة خاصيّةً تُسمّى <code>style</code> تحدد تنسيق المكوّن بتمرير قيمٍ لها. تتطابق أسماء وقيم الأنماط مع طريقة عمل[[CSS]] على الويب في أغلب الأحيان، باستثناء أنّ الأسماء تُكتَب بصيغة سنام الجمل camelCase للأحرف، إذ نكتُب مثلًا <code>backgroundColor</code> بدلاً من <code>background-color</code>. | |||
في React | |||
يُمكن لخاصيّة <code>style</code> أن تكون كائن JavaScript | يُمكن لخاصيّة <code>style</code> أن تكون كائن JavaScript بسيطًا عاديًّا، وهي الطريقة التي سنعتمدها عادةً في أمثلة هذا التوثيق. لكن يمكنك كذلك تمرير مصفوفة من الأنماط، بحيث يكون للنمط الأخير في المصفوفة أسبقيةً على الأنماط التي قبله، لذا يمكنك استخدام هذه الطريقة لتوريث الأنماط. | ||
ولأنّ المكوّنات تزداد تعقيدًا أثناء التطوير غالباً ما سيكون استخدام <code>[[ReactNative/stylesheet|StyleSheet.create]]</code> لتجميع أنماطٍ متعددةٍ في مكانٍ واحدٍ طريقةً أفضل وأنظف للحفاظ على شيفرةٍ قابلةٍ للصيانة سهلة التعديل، انظر مثلًا الشيفرة التالية ([https://snack.expo.dev/@hsoubwiki/style تجربة حية]): | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
import React | import React from 'react'; | ||
import { | import { StyleSheet, Text, View } from 'react-native'; | ||
const LotsOfStyles = () => { | |||
return ( | |||
<View style={styles.container}> | |||
<Text style={styles.red}>just red</Text> | |||
<Text style={styles.bigBlue}>just bigBlue</Text> | |||
<Text style={[styles.bigBlue, styles.red]}>bigBlue, then red</Text> | |||
<Text style={[styles.red, styles.bigBlue]}>red, then bigBlue</Text> | |||
</View> | |||
); | |||
}; | |||
const styles = StyleSheet.create({ | const styles = StyleSheet.create({ | ||
container: { | |||
marginTop: 50, | |||
}, | |||
bigBlue: { | |||
color: 'blue', | color: 'blue', | ||
fontWeight: 'bold', | fontWeight: 'bold', | ||
سطر 21: | سطر 34: | ||
}); | }); | ||
export default | export default LotsOfStyles; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
من الشائع جعلُ المكون الخاص بك يقبل خاصيّةً باسم <code>style</code> | من الشائع جعلُ المكون الخاص بك يقبل خاصيّةً باسم <code>style</code> تُستخدَم بدورها لتنسيق المكوّنات الأبناء. يمكنك اعتماد هذه الفكرة لجعل الأنماط "تنسابُ (cascade)" أي تورَّث للأبناء كما في CSS. | ||
هناك عدّة طرائق لتخصيص | هناك عدّة طرائق لتخصيص نمطِ وتنسيقِ النصوص، انظر [[ReactNative/text style props|صفحة تنسيق المكوّن <code>Text</code>]] لقائمةٍ كاملة، يمكنك الآن تجميل النصوص في تطبيقك! | ||
الخطوة التالية هي تعلّم [[ReactNative/height and width|كيفية التحكم في أحجام المكونات]]. | |||
== مصادر == | == مصادر == | ||
* [https://facebook.github.io/react-native/docs/style صفحة Style في توثيق React Native الرسمي.] | * [https://facebook.github.io/react-native/docs/style صفحة Style في توثيق React Native الرسمي.] | ||
[[تصنيف:ReactNative]] | [[تصنيف:ReactNative]] | ||
[[تصنيف:React Native Docs]] |
المراجعة الحالية بتاريخ 13:39، 9 أكتوبر 2021
ينسَّق التطبيق في React Native باستخدام JavaScript ، تقبل جميع المكوّنات الأساسيّة خاصيّةً تُسمّى style
تحدد تنسيق المكوّن بتمرير قيمٍ لها. تتطابق أسماء وقيم الأنماط مع طريقة عملCSS على الويب في أغلب الأحيان، باستثناء أنّ الأسماء تُكتَب بصيغة سنام الجمل camelCase للأحرف، إذ نكتُب مثلًا backgroundColor
بدلاً من background-color
.
يُمكن لخاصيّة style
أن تكون كائن JavaScript بسيطًا عاديًّا، وهي الطريقة التي سنعتمدها عادةً في أمثلة هذا التوثيق. لكن يمكنك كذلك تمرير مصفوفة من الأنماط، بحيث يكون للنمط الأخير في المصفوفة أسبقيةً على الأنماط التي قبله، لذا يمكنك استخدام هذه الطريقة لتوريث الأنماط.
ولأنّ المكوّنات تزداد تعقيدًا أثناء التطوير غالباً ما سيكون استخدام StyleSheet.create
لتجميع أنماطٍ متعددةٍ في مكانٍ واحدٍ طريقةً أفضل وأنظف للحفاظ على شيفرةٍ قابلةٍ للصيانة سهلة التعديل، انظر مثلًا الشيفرة التالية (تجربة حية):
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
const LotsOfStyles = () => {
return (
<View style={styles.container}>
<Text style={styles.red}>just red</Text>
<Text style={styles.bigBlue}>just bigBlue</Text>
<Text style={[styles.bigBlue, styles.red]}>bigBlue, then red</Text>
<Text style={[styles.red, styles.bigBlue]}>red, then bigBlue</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
marginTop: 50,
},
bigBlue: {
color: 'blue',
fontWeight: 'bold',
fontSize: 30,
},
red: {
color: 'red',
},
});
export default LotsOfStyles;
من الشائع جعلُ المكون الخاص بك يقبل خاصيّةً باسم style
تُستخدَم بدورها لتنسيق المكوّنات الأبناء. يمكنك اعتماد هذه الفكرة لجعل الأنماط "تنسابُ (cascade)" أي تورَّث للأبناء كما في CSS.
هناك عدّة طرائق لتخصيص نمطِ وتنسيقِ النصوص، انظر صفحة تنسيق المكوّن Text
لقائمةٍ كاملة، يمكنك الآن تجميل النصوص في تطبيقك!
الخطوة التالية هي تعلّم كيفية التحكم في أحجام المكونات.