@lodbrok

Как правильно создавать вспомогательные функции рендера vue?

Добрый вечер. Разбираю пример туториала с сайта React для Vue. Столкнулся с проблемой создания дополнительной функции renderSquare во vue для рендера компонента. То же самое с созданием дополнительной переменной, как status в методе render в React, поместил данную переменную в метод. Принято ли так делать вообще во vue и как решаются данные ситуации, заранее спасибо!?

React:
class Board extends React.Component {
  renderSquare(i) {
    return (
      <Square
        value={this.props.squares[i]}
        onClick={() => this.props.onClick(i)}
      />
    );
  }

  render() {
    const status = 'Next player: X';

    return (
      <div>
        <div className="status">{status}</div>

        <div className="board-row">
          {this.renderSquare(0)}
          {this.renderSquare(1)}
          {this.renderSquare(2)}
        </div>
        <div className="board-row">
          {this.renderSquare(3)}
          {this.renderSquare(4)}
          {this.renderSquare(5)}
        </div>
        <div className="board-row">
          {this.renderSquare(6)}
          {this.renderSquare(7)}
          {this.renderSquare(8)}
        </div>
      </div>
    );
  }
}

Vue:
<template>
  <div>
    <div className="board-row">
      {{ renderSquare(0) }}
      {{ renderSquare(1) }}
      {{ renderSquare(2) }}
    </div>
  </div>
</template>

<script>
  import CSSModules from 'vue-css-modules'

  import Square from 'components/Square'
  import styles from './styles.css'

  export default {
    name: 'Board',
    components: {
      Square
    },
    methods: {
      status() {
        return 'Next player'
      },
      renderSquare(i) {
        return ...                           и тут начались проблемы
      },
    },

    mixins: [CSSModules(styles)],
  }
</script>
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
09 мая 2024, в 21:54
2500 руб./за проект
09 мая 2024, в 20:34
1000 руб./за проект
09 мая 2024, в 20:33
200000 руб./за проект