Size: a a a

JavaScript.Ninja

2021 July 02

v

vek in JavaScript.Ninja
Всем привет.

Слышал, что использования es5 классов в data на vue2-3 эт плохо..
Пример:
class User {
 constructor(name){
   this.name = name
 }
 
 методы(){ .... }
}

....

export default {
 data() {
    return {
      user: new User('Иван')
    }
 }
}

Кто-нибудь в своих проектах использует классы в качестве data?
источник

СД

Сергей Деревянко... in JavaScript.Ninja
Такие примеры нужно на собеседованиях показывать, я вот увидел, и впал в ступор )
источник

ДД

Дмитрий Дивин... in JavaScript.Ninja
А зачем? )
источник

v

vek in JavaScript.Ninja
Я вынес всю бизнес-логику в методы класса, а во vue компоненте оставил только логику отображения.
источник

N

Nikita in JavaScript.Ninja
Слышно что-нибуть про релиз базового курса по js? А то вроде еще в начале мая дожен был быть, а уже июль))
источник

N

Nikita in JavaScript.Ninja
источник

СД

Сергей Деревянко... in JavaScript.Ninja
во vue3 для этого есть composition-api, во vue2 тоже есть, но нужно доставлять доп пакеты, и рекомендуется юзать не класы, а обычные обьекты, ну тоесть для чего вам делать методы мутации реактивными ?
источник

X

Xfirab in JavaScript.Ninja
Помоему сейчас в очереди второй МК CI/CD, потом МК по тайпскрипт, а там еще курс по node.js ...
Думаю что базовый курс еще не скоро :-(
источник

N

Nikita in JavaScript.Ninja
источник

IK

Illya Klymov in JavaScript.Ninja
мастер-класс по тайпскрипту делаю не я, второй мастер-класс по CI/CD уже идет :)
источник

v

vek in JavaScript.Ninja
ну тоесть для чего вам делать методы мутации реактивными ?
в принципе не нужны.

но иногда в шаблонах использую след.
<div>{{user.fullname}}</div>

fullname - это метод класса..

Мне просто интересно я один такой ..., который использует объекты класса во vue) Или это все же нормальная практика
источник

VK

Vladimir Klimov in JavaScript.Ninja
А могли бы использовать computed
источник

IK

Illya Klymov in JavaScript.Ninja
это ненормальная практика, которая расходится в том числе с позицией Эвана :)
источник

СД

Сергей Деревянко... in JavaScript.Ninja
ну если это метод, тогда наверно
<div>{{user.fullname()}}</div>

Может учше юзать computed ? и я не уверен что реактивность всегда будет срабатывать через методы геттеры
источник

v

vek in JavaScript.Ninja
Спасибо за ответ.. Как раз у вас на стриме я и услышал.. Искал в интернете по этому поводу, но ничего не наше (или плохо искал). Хотелось бы понять в чем плох данный подход, какие побочные эффекты..
источник

v

vek in JavaScript.Ninja
Это getter.. Неправильно написал в пред сообщение..
источник

IK

Illya Klymov in JavaScript.Ninja
тем, что теперь к примеру везде где выполняется присваиваение в объект user - я должен понимать что это объект класса, соответственно я или нарушаю инкапсуляцию, или просто делаю объект "у которого прицеплены методы"
источник

IK

Illya Klymov in JavaScript.Ninja
и для второго сценария нет смысла вводить дополнительные ограничения на вью слой просто чтоб прицепить "методы" к объекту
источник

v

vek in JavaScript.Ninja
есть и третий сценария использования..
источник

v

vek in JavaScript.Ninja
источник