React.js.Лучше ли создавать методы с параметрами (а реквизиты будут аргументами) или ссылочными реквизитами в теле функции? - PullRequest
0 голосов
/ 27 ноября 2018

Рассмотрим следующие примеры:

import React, { Component } from 'react';

class Todos extends Component {

  renderList = (listArray) => { // our todos are function argument
    return listArray.map(listItem => (
      <li>listItem</li>
    ))
  };

  render() {
    const { todos } = this.props;
    return (
      <div className="container">
        renderList(todos);
      </div>
    ); 
  }
}

export default Todos;

Второй пример:

import React, { Component } from 'react';

class Todos extends Component {

  renderList = () => { // but in this example we are explicitly reference to this.props 
    const { todos } = this.props;
    return todos.map(listItem => (
      <li>listItem</li>
    ))
  };

  render() {
    return (
      <div className="container">
        renderList();
      </div>
    ); 
  }
}

export default Todos;

Я никогда не могу решить, какой стиль лучше.Я попытался найти его в Интернете, но это кажется редкой дилеммой.Итак, мои вопросы: лучше ли создавать методы с параметрами (а реквизиты будут аргументами) или ссылочными реквизитами в теле функции?Есть ли реальная разница?Что ты предпочитаешь?

1 Ответ

0 голосов
/ 27 ноября 2018

Как правило, я всегда склонен передавать необходимые аргументы своим методам вместо того, чтобы использовать область действия класса больше всего из-за тестируемости.
Допустим, вы хотите протестировать этот метод позже, вы можете просто передатьаргументы, которые вы хотите, и это намного проще и чище, вместо того, чтобы устанавливать правильные переменные для вашего класса (или какова область действия, в которой определяется ваш метод).

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

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

...