Cyberial
@Cyberial
Alone kitten Meow :)

Что это за способ обьявления свойств в vue?

доброго дня ребят
недавно скачал себе репозиторий с кодом библиотеки vue.js, и нашел там кое что интересное. (Ниже код)
Подскажите это же обычные свойства и с ними можно работать так же в react.js ?
export default {
  data: () => ({
    title: '',
    description: '',
    imageUrl: '',
    date: moment().unix(),
    duration: 3600, // 1 hour
    ticketCost: 1e17, // 0.1 ether
    maxTickets: 1000,
    dialog: false,
    showDatePicker: false,
    showTimePicker: false,
    symbol: defaultSymbol,
    timeRule: [v => v.match(timeRegExp) != null || 'Invalid time!'],
    maxTicketsRule: [v => v > 0 || 'Invalid amount!']
  }),

  computed: {
    dateInput: {
      get: function () {
        return moment(this.date * 1000).toISOString().substr(0, 10)
      },
      set: function (newDate) {
        this.date = moment(newDate).unix()
      }
    },
    timeInput: {
      get: function () {
        return moment(this.date * 1000).format('H:mm')
      },
      set: function (time) {
        if (time.match(timeRegExp)) {
          const values = time.split(':')
          moment(this.date).minutes(values[0]).seconds(values[1])
        }
      }
    },
    durationInput: {
      get: function () {
        return moment.utc(this.duration * 1000).format('H:mm')
      },
      set: function (time) {
        if (time.match(timeRegExp)) {
          const values = time.split(':')
          moment.utc(this.duration).minutes(values[0]).seconds(values[1])
        }
      }
    },
    ticketCostInput: {
      get: function () {
        return this.$web3.utils.fromWei(this.ticketCost.toString(), 'ether')
      },
      set: function (value) {
        this.ticketCost = this.$web3.utils.toWei(value.toString())
      }
    }
  },

  methods: {
    reset: function () {
      this.title = this.description = this.imageUrl
      this.symbol = defaultSymbol
      this.date = moment().unix()
      this.duration = 3600
      this.maxTickets = 1000
    },
    close: function () {
      this.reset()
      this.dialog = false
    },
    save: async function () {
      await this.$store.dispatch('createEvent', [
        this.title,
        this.description,
        this.imageUrl,
        this.symbol,
        this.ticketCost,
        this.date,
        this.duration,
        this.maxTickets
      ])
      this.close()
    }
  }
}
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Все что в дате это реактивные свойства
Computed это вычисляемые свойства, насчёт их кэширования читайте доки там не все однозначно. Методы это чистые методы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы