Рендеринг в React-Native

Я относительно новичок в том, чтобы реагировать на нативные и вообще создавать что-либо с пользовательским интерфейсом. Мне интересно, когда уместно использовать функцию render{} при программировании приложения. Я спрашиваю об этом, потому что мне интересно, как это повлияет на приложение. Например, если я создаю компонент <LinkedIcon> и пытаюсь разместить их большое количество на одном экране, то каждая точка должна иметь вызов render. Если нет, что бы я сделал вместо этого.

Пример кода:

    import React, { Component } from "react";
    import { Linking, View, TouchableHighlight } from "react-native";
    import Icon from "react-native-vector-icons/FontAwesome";

    class LinkedIcon extends Component<Props> { //will show about up to 20 on one screen 
      render() {
        return (
           <TouchableHighlight>
           <Icon title = "circle" size = {15} />
         </TouchableHighlight>
        );
      }
    }

    export default LinkedIcon;
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
733
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно, кто-то может дать лучший ответ, но, насколько я понимаю, вы бы хотели использовать class, если у вас есть локальное состояние, которым нужно манипулировать. Это как-то связано с размером файла класса по сравнению с компонентом, не относящимся к классу. В этом случае я бы рекомендовал сделать ваш файл немым компонентом, поскольку локального состояния нет. Вместо этого вы просто передаете реквизиты от родителя.

const LinkedIcon = props => (
    <TouchableHighlight>
        <Icon title = "circle" size = {15} />
    </TouchableHighlight>
)

Надеюсь это поможет!

Ответ принят как подходящий

Ваш компонент выглядит так, как будто он может быть реализован как компонент без состояния / функциональный, где у вас нет доступа к собственным методам жизненного цикла реакции, что делает компонент более легким / быстрым.

Ваш компонент LinkedIcon как функциональный компонент/компонент без сохранения состояния может выглядеть следующим образом:

const LinkedIcon = (props) => {
   return (
       <TouchableHighlight>
           <Icon title = "circle" size = {15} />
       </TouchableHighlight>
   );
}

Теперь вы можете легко создавать экземпляры нескольких LinkedIcons в родительском компоненте, который может быть компонентом с отслеживанием состояния, где вы можете обрабатывать состояния LinkedIcons (если хотите).

class Main extends Component {

   render(){
      return (
         <View>
            <LinkedIcon .../>
            <LinkedIcon .../>
             ...
         </View>
      );
   }
}

Другие вопросы по теме