Нет защищенных полей. Без них бывает туго, если приватное пле в базовом классе надо использовать в наследнике
Не согласен на счет «недоклассов».
В js, действительно, нет protected, но все же такое поведение можно получить, например так:
class A {
#private = 1;
get protected() {
return this.#private;
}
}
class B extends A {
}
console.log(new B().protected) // 1;
или еще такой вариант:
class A {
#private = 1;
static getProtectedValue(instance: A) {
return instance.#private;
}
static setProtectedValue(instance: A, newValue: any) {
instance.#private = newValue;
}
}
class B extends A { };
const instance = new B();
console.log(A.getProtectedValue(instance)); // 1;
A.setProtectedValue(instance, 2);
console.log(A.getProtectedValue(instance)); // 2;
// Или так
class C extends A {
doWork() {
return A.getProtectedValue(this);
}
}
console.log(new C().doWork()); // 1;
Более того, так как конструкторы также наследуют свойства, то можно и так:
// ... объявление класса А как и выше
class B extends A { };
const instance = new B();
// тут уже обращение через B
console.log(B.getProtectedValue(instance)); // 1;
B.setProtectedValue(instance, 2);
console.log(B.getProtectedValue(instance)); // 2;
class C extends A {
doWork() {
// а тут через C
return C.getProtectedValue(this);
}
}
console.log(new C().doWork()); // 1;
Ну что вы неудобные вопросы то задаете? Автор пост написал что бы за час получить плюсики от коллег и забыть, а что там с содержанием не так уж и важно))
Как видно, используется всего две функции makeObservable и observer. Во что тут нужно вникать? С чем тут нужно разбираться? Потыкать вживую можно в песочнице.
в самом первом элементарном примере код мобх раздувается на десяток строк, необходимость создавать классы
Я понял, что вы не любите классы, и мне совершенно непонятно почему. Вот этот же пример с этой же либой, только с синтаксисом классов:
Я, признаюсь, посмотрел только код автокомплита, и для себя все понял. До продакшн решения тут как пешком до луны. По большому счету, вы ничего то и не сделали.
Компонент кнопки (button) у меня уже есть в html, нет, реально, ни одной причины делать кнопку в виде веб-компонента. Большая часть остальных, типа Chip, Badge и т.д — делается несколькими строчками цсс. Ну и т.д.
Что реально нужно — автокомплит — маст хэв, только ваш готов процентов на 5, не более. Редкие и не везде нужные, но все же такие вещи, которые на цсс не сделать, например dual-range. То есть, не надо паковать то, что уже есть в хтмл в веб компоненты, надо предлагать то, чего нет.
И хотя я оцениваю решение на условные 5 из 10, в целом — плюсанул, потому что сам веб компоненты люблю, и считаю их недооцененными.
Попробуйте сделать какой-то один, но с полной поддержкой всего. Например, автокомплит должен уметь в множественных выбор, в поиск по опциям, в кастомизацию выбранных опций и самих опций + вести себя для браузера так же как инпут, то есть уметь в валидацию, в :valid, :invalid, :required :empty и тд и тп.
Не согласен на счет «недоклассов».
В js, действительно, нет
protected, но все же такое поведение можно получить, например так:или еще такой вариант:
Более того, так как конструкторы также наследуют свойства, то можно и так:
Ну что вы неудобные вопросы то задаете? Автор пост написал что бы за час получить плюсики от коллег и забыть, а что там с содержанием не так уж и важно))
Да ну что ты! Дэн Абрамов же сказал что классы это плохо! Смерись. И не забивай, что для многих использование классов = классовые компоненты в реакте
Написали бы вначале статьи это, мы бы не тратили время на прочтение, сразу бы все поняли.
А вы, стесняюсь спросить, в курсе, что все браузерное API + все встроенное в сам язык API построено на классах?
Спорное утверждение, вот ваш переписанный пример на неизвестной вам «либе»:
Как видно, используется всего две функции
makeObservableиobserver. Во что тут нужно вникать? С чем тут нужно разбираться? Потыкать вживую можно в песочнице.Я понял, что вы не любите классы, и мне совершенно непонятно почему. Вот этот же пример с этой же либой, только с синтаксисом классов:
Как видите, запись не менее лаконичная, но дополнительно мы еще и нормальную типизацию получили без лишней строчки кода.
_$<п04ему?
Токсик! )
Только условия валидации это очень незначительно, и меняется редко, а «добавить фильтр» — наоборот.
Вам не кажется. Подано как очередная серебряная пуля, а по сути — пшик. Собственно поэтому мой комментарий выше остался без ответа.
Далеко вам до джаваскрипта))
У нас await работает с любым thenable объектом, а это любой объект, у которого есть метод then.
P.s. заголовок у вас кликбейтный, конечно, вы же не await реализовали, а awaitable result)
700 от куда-то взялся, а откуда, и в чем он? 700 грамм? 700 тон?
Что делается исключительно через прибитый гвоздями к реакту способ управления состояния. Хуки, то есть.
О боже, мы обречены…
Где-то я это уже читал…
А, точно: https://habr.com/ru/articles/968384/comments/#comment_29145688
Если бы не интернет эксплорер, ой, извините — сафари))
Ладно, сами напросились…))
Я, признаюсь, посмотрел только код автокомплита, и для себя все понял. До продакшн решения тут как пешком до луны. По большому счету, вы ничего то и не сделали.
Компонент кнопки (button) у меня уже есть в html, нет, реально, ни одной причины делать кнопку в виде веб-компонента. Большая часть остальных, типа Chip, Badge и т.д — делается несколькими строчками цсс. Ну и т.д.
Что реально нужно — автокомплит — маст хэв, только ваш готов процентов на 5, не более. Редкие и не везде нужные, но все же такие вещи, которые на цсс не сделать, например dual-range. То есть, не надо паковать то, что уже есть в хтмл в веб компоненты, надо предлагать то, чего нет.
И хотя я оцениваю решение на условные 5 из 10, в целом — плюсанул, потому что сам веб компоненты люблю, и считаю их недооцененными.
Попробуйте сделать какой-то один, но с полной поддержкой всего. Например, автокомплит должен уметь в множественных выбор, в поиск по опциям, в кастомизацию выбранных опций и самих опций + вести себя для браузера так же как инпут, то есть уметь в валидацию, в :valid, :invalid, :required :empty и тд и тп.
Направление вы выбрали правильное, на мой взгляд.
Ну просто авторы реакта не стали его преждевременно оптимизировать, понятно же)
Вообще не понимаю, каким образом у них такой низкосортный контент набирает сразу после публикации по 20 плюсов, и главное, зачем им это?
Даже читать не стал, просто плюсик поставил.
Каждый раз когда приходится открывать икскод, у меня случается нервный тик!