Text: bu nədir, mətn göstərilməsi və React Native

Müəllif: IT Sectr Dərc olunub: 2026-07-05 Oxuma vaxtı: 9 dəq

React Native-də Text komponenti ekranda mətn göstərməyin yeganə yoludur, vebdə fərqli teqlərin (p, span, h1-h6) istifadə edilməsindən fərqli olaraq. Text stillərin kaskadlı miras alınması üçün iç-içə yerləşdirməni, toxunma hadisələrinin işlənməsini və sətirlərin avtomatik qaytarılmasını dəstəkləyir. React Native Docs, 2024-ə görə, Text View-dən sonra ən çox istifadə olunan ikinci komponentdir. Komponent iOS-da UILabel və Android-də TextView-ə render olunur, şriftlərin və əlçatanlığın düzgün işləməsini təmin edir.

Əsas məqamlar

  • Text React Native-də mətn göstərmək üçün yeganə komponentdir
  • Mətnin ayrı-ayrı hissələrini stilləşdirmək üçün iç-içə yerləşdirməni dəstəkləyir
  • Text valideyn Text komponentlərindən stilləri miras alır
  • iOS-da UILabel-ə, Android-də isə TextView-ə render olunur
  • Göstərilməni idarə etmək üçün numberOfLines və adjustsFontSizeToFit dəstəkləyir

React Native-də Text nədir

Text mətn məzmununu göstərmək üçün React Native komponentidir. Veb inkişafından fərqli olaraq, burada mətn üçün çoxsaylı semantik teqlər mövcud ikən, React Native-də bütün mətn elementləri Text vasitəsilə yaradılır. Komponent həm sadə mətni, həm də iç-içə Text və stilləşdirilmiş fraqmentlərlə mürəkkəb strukturları göstərə bilər.

Text avtomatik olaraq sətir qaytarılmasını idarə edir, şrift növünü, ölçüsünü, rəngini və düzlənməsini tənzimləyir. Komponent toxunma hadisələrini (onPress) dəstəkləyir ki, bu da əlavə bükücülər olmadan kliklənən keçidlər yaratmağa imkan verir. Vacib məhdudiyyət: Text-i birbaşa View-ə yerləşdirmək olmaz — yalnız digər Text komponentlərinə və ya birbaşa məzmun kimi.

React Native Nested Text, 2024-ə görə, iç-içə Text komponentləri stilləri valideyndən miras alır. Bu, yuxarı səviyyədə əsas stil təyin etməyə və konkret fraqmentlər üçün ayrı-ayrı xassələri dəyişdirməyə imkan verir — vebdə CSS ilə span-ın işləməsinə bənzər.

Text komponentinin xassələri və API

Text komponenti göstərilməni, davranışı və əlçatanlığı idarə etmək üçün bir sıra xassələr təqdim edir. Əsas kateqoriyalar: stil xassələri (şrift, ölçü, rəng, düzlənmə), göstərilmə xassələri (numberOfLines, lineBreakMode) və interaktiv xassələr (onPress, onLongPress).

Mətn göstərilmə xassələri

numberOfLines göstərilən sətirlərin sayını məhdudlaşdırır, sonunda üç nöqtə əlavə edir. ellipsizeMode üç nöqtənin yerini idarə edir (head, middle, tail, clip). adjustsFontSizeToFit mətnin verilən çərçivəyə sığması üçün şrift ölçüsünü avtomatik kiçildir. lineBreakMode numberOfLines-dan kənar mətnin necə kəsiləcəyini müəyyən edir.

İnteraktiv xassələr

Text toxunmaları idarə etmək üçün onPress və onLongPress dəstəkləyir. Bu, TouchableOpacity istifadə etmədən mətn keçidləri yaratmağa imkan verir. onTextLayout renderdən sonra mətnin yerləşməsi haqqında məlumat qaytarır — animasiyalar və mövqeləndirmə üçün faydalıdır.

Platforma xassələri

iOS-da disabled (mətni söndürür), selectable (seçməni aktiv edir), dataDetectorTypes (keçidlərin, telefonların, ünvanların avtomatik tanınması) mövcuddur. Android-də selectable (textSelectable vasitəsilə), includeFontPadding (artıq boşluqları silir) mövcuddur.

Text-in HTML p və span elementlərindən fərqləri

Text vizual olaraq HTML p və span teqlərinə bənzəsə də, memarlıq fərqləri əhəmiyyətlidir. React Native-də semantik mətn elementləri ilə DOM modeli yoxdur — bütün mətn qovşaqları müxtəlif xassələrlə vahid Text komponenti vasitəsilə idarə olunur.

XüsusiyyətText (React Native)p / span (HTML)
İç-içə yerləşdirməText içində Text — stillərin miras alınmasıp p-ni ehtiva edə bilməz; span p-nin içində
Susmaya görə marginSusmaya görə boşluq yoxdurp-nin margin-block-start/end var
Sətir qaytarılmasıKonteyner daxilində avtomatikp — blok, span — sətir
onPress dəstəyiDaxili dəstəkƏlavə bükücü tələb olunur
Stil miras alınmasıBəli, valideyn Text-dənBəli, CSS kaskadı

Əsas fərq — Text-in iç-içə yerləşdirilməsi ilə stillərin miras alınması. Xarici Text-in fontSize: 18 və color: blue varsa, bütün iç-içə Text-lər bu stilləri miras alır. Daxili Text-də istənilən xassəni konkret dəyər verməklə dəyişdirmək olar. Bu, koda qənaət edir və strukturu daha təmiz edir.

Mətn stilləşdirməsi və şriftlər

Text Tipoqrafiya üçün CSS xassələrinin əksəriyyətini dəstəkləyir: fontFamily, fontSize, fontWeight, fontStyle, color, letterSpacing, lineHeight, textAlign, textDecorationLine, textTransform. React Native-də şriftlər @font-face vasitəsilə deyil, platforma səviyyəsində qoşulur.

Xüsusi şriftlərin qoşulması

Xüsusi şriftlərdən istifadə etmək üçün onları assets/fonts qovluğuna əlavə etmək və react-native.config.js-də göstərmək lazımdır. Tətbiq yenidən qurulduqdan sonra şrift fontFamily vasitəsilə əlçatan olur. React Native veb-şriftləri (Google Fonts) birbaşa dəstəkləmir — .ttf və ya .otf fayllarının yüklənməsi tələb olunur.

Stil miras alınması və kaskad

Text-də miras alma mexanizmi CSS-dən fərqlənir. Stillər yalnız Text-dən iç-içə Text-ə ötürülür, View-dən Text-ə ötürülmür. Bütün tətbiq üçün şrift təyin etmək lazımdırsa, Text komponentinin defaultProps-undan və ya xüsusi bükücü komponentdən istifadə olunur.

js
<Text style={{ fontSize: 18, color: '#333' }}>
    This text is 18px and color #333
    <Text style={{ fontWeight: 'bold', color: '#007AFF' }}>
        bold and blue
    </Text>
    back to #333 color
</Text>

Bu nümunədə xarici Text fontSize: 18 və color: #333 təyin edir. Daxili Text fontSize-i (18) miras alır, lakin fontWeight-u bold-a və color-u #007AFF-ə dəyişir. Xarici Text yalnız öz stillərini miras alır. Bu, HTML-də iç-içə span-ın işləməsinin dəqiq analogiyasıdır.

Text ilə praktik nümunələr

React Native-də Text istifadəsinin iki tipik ssenarisini nəzərdən keçirək: iç-içə yerləşdirmə ilə mətn formatlaşdırılması və sətir məhdudiyyəti ilə kliklənən komponentin yaradılması.

Nümunə 1: formatlaşdırma ilə xəbər kartı

Bu nümunədə Text vurğulanmış elementlərlə çoxsətirli mətn göstərmək üçün istifadə olunur: başlıq, tarix və keçidli məzmun.

js
const NewsCard = ({ title, date, content }) => (
    <View style={styles.card}>
        <Text style={styles.title}>{title}</Text>
        <Text style={styles.date}>{date}</Text>
        <Text style={styles.content}>
            {content}
            {' ' }
            <Text
                style={styles.link}
                onPress={() => Linking.openURL(url)}
            >
                Read more
            </Text>
        </Text>
    </View>
);

Bu struktuda hər biri öz stilinə malik üç müstəqil Text komponenti (başlıq, tarix, məzmun) var. Məzmunlu Text-in içərisində keçid üçün onPress ilə başqa bir Text yerləşdirilib. Belə nümunə xəbər lentlərində, bloqlarda və şərhlərdə istifadə olunur.

Nümunə 2: sətir məhdudiyyəti ilə mətn

Üç nöqtə ilə mətn önizləməsi göstərmək üçün numberOfLines istifadə olunur. Bu, siyahılardakı məhsul kartları və məqalələr üçün standart nümunədir.

js
<Text
    numberOfLines={2}
    ellipsizeMode="tail"
    style={styles.preview}
>
    {longDescription}
</Text>

numberOfLines = 2 xassəsi mətni iki sətirlə məhdudlaşdırır. Mətn daha uzundursa, React Native avtomatik olaraq ikinci sətrin sonunda üç nöqtə əlavə edir. ellipsizeMode: 'tail' parametri üç nöqtənin sonda olmasını göstərir (head, middle, clip da mövcuddur).

Tez-tez verilən suallar

Niyə React Native-də h1, p, span teqləri yoxdur?

React Native platformalararası uyğunluq üçün minimalist komponent dəsti istifadə edir. Çoxsaylı semantik HTML teqləri əvəzinə müxtəlif stillərlə bir Text tətbiq olunur. Bu, bir kod bazasından hər iki platformada renderləməni sadələşdirir.

Text düymə kimi istifadə edilə bilərmi?

Bəli, Text toxunmaları idarə etmək üçün onPress və onLongPress dəstəkləyir. Bununla belə, vizual əks-əlaqəli düymələr (basma vurğusu) üçün içərisində Text olan TouchableOpacity və ya Pressable istifadə etmək daha yaxşıdır. Text.onPress susmaya görə vizual basma göstəricisi təmin etmir.

Niyə mətnim qaytarılmır?

Text avtomatik olaraq yalnız konteyner daxilində uzun sətirləri qaytarır. Mətn qaytarılmırsa, yoxlayın: valideyn View-in en məhdudiyyəti varmı, stillərdə nowrap təyin edilməyibmi və numberOfLines mövcud sətir sayını keçmir.

Text daxilində qalın mətn necə edilir?

fontWeight: 'bold' ilə iç-içə Text istifadə edin və ya mətni bu stillə komponentə bükün. Həmçinin fontWeight: '700' və ya '800' daha qalın yazı üçün tətbiq oluna bilər. Qalınlıq cihazda müvafiq şriftin mövcudluğundan asılıdır.

Text şəkil ehtiva edə bilərmi?

Xeyr, Text yalnız digər Text komponentlərini və ya sətirləri ehtiva edə bilər. Image Text-in törəməsi ola bilməz. İkonalarla mətn göstərmək üçün Text və Image-ni qonşu elementlər kimi View istifadə edin və ya şəkillərin yerləşdirilməsini dəstəkləyən komponentdən istifadə edin.

Nəticə

  • Text — React Native-də mətn göstərmək üçün yeganə komponent, vebdəki p, span, h1-h6-nı əvəz edir
  • Valideyn Text komponentindən stillərin miras alınması ilə iç-içə yerləşdirməni dəstəkləyir
  • Əsas xassələr: numberOfLines, ellipsizeMode, onPress, selectable, adjustsFontSizeToFit
  • Text nativ UILabel (iOS) və ya TextView (Android) render olunur
  • Şriftlər StyleSheet-də fontFamily vasitəsilə platforma səviyyəsində qoşulur
  • Text stilləri View-dən miras alınmır — açıq şəkildə təyin edilməsi və ya defaultProps tələb olunur
  • Kliklənən keçidlər üçün TouchableOpacity deyil, onPress ilə iç-içə Text istifadə edin

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun