Pull to refresh

Comments 40

Интересно, когда прекратят называть React фреймворком, когда у них на основной странице большим шрифтом написано «A JavaScript library for building user interfaces»
Меня умиляет, как реакт-разработчики борятся за право называть реакт библиотекой, когда сами же, тут же после скачивания своей «библиотеки» закачивают пачку других реакт-библиотек, чтобы наконец получить весь тот функционал, который как раз таки и делает твою библиотеку фреймворком.
закачивают пачку других реакт-библиотек

React + MobX + Typescript и всё, теперь это человеческий и реактивный инструмент.
В отличии от ущербной связки react + redux(effecor и т.д и т.п.) или вообще голый react.
Не являюсь react разработчиком. Использую его исключительно для создания интерактивных интерфейсов на некоторых страницах дабы не городить спагетти jquery кода.

То что можно обвесить исходный пакет кучей других пакетов и собрать из этого свой фреймворк еще не делает изначальный пакет фреймворком. С таким успехом можно и jquery отнести туда же.

Да, да, и не вздумайте назвать Angular фреймворком! У них на сайте большим шрифтом написано: "The modern web
developer's platform".

ну посколько там полно тулинга и технологий набор. то в поне платформа.

Все таки от статьи "Впечатления о Vue.js после React" хотелось бы больше личных впечатлений, особенно мнение насчет различия некоторых подходов, плюсы и минусы одного по сравнению с другим. А то получается, что тут в основном базовая информации из доков по Vue.

Согласен, еще и график скачиваний почему-то до августа 2020 :/

Vue правильнее сравнивать не с Реактом, а с божественной связкой React+MobX, тогда будет что-то схожее.
По поводу шаблонов я так и не понял вот что:


v-on:change="todo.completed = !todo.completed"

-будет ли внутри кавычек работать тайпчекинг (TS) и автокомплит (WebStorm, к примеру)?


Вообще субъективно мне не нравится код в строке. Непонятно, что за переменные, из какого они скоупа, и т.д. Вот чем хорош JSX/TSX — там всё как в обычном JS/TS, с переменными понятно, в частности.

Тут все элементарно — переменные из data(). Все переменные в темплейте компонента берутся из data(), не нужно лишнего кода как в реакте. Автокомплит работает нормально. Вообще в реакте нужно писать больше кода, что является минусом
Вы не поняли, вам говорят React + MobX.

Это совершенно не то, что вы думаете подставляю сюда голый реакт или реакт + редакс(и т.п.).

React + MobX это вообще абсолютно другой подход, именно человеческий, для людей. В этом подходе всё тоже элементарно и максимально просто. И писать тонны говнокода не требуется. Автокомплит работает идеально, 100% поддержка тайпскрипта, средства IDE задействованы по максимуму без ограничений.
В vue тоже все это есть, но при этом он проще, и его можно использовать как для SPA так и как замену jQuery. Плюс взаимодействие с Laravel
Чем же он проще в сравнении с React + MobX?

Например нет возни с JSX и в 3 версии можно обойтись вообще без библиотек типа Vuex/MobX

Что ещё за возя с JSX?
В чем проблема сложность 1 раз подключить MobX и забыть? Он не накладывает ограничений и дополнительных расходов на кол-во кода или какую-то сложность.
Давно не писал на реакте, там все еще нужно писать что то вроде:
this.handleSubmit = this.handleSubmit.bind(this)
?
Уже давным давно не надо
А с какой версии не надо, и как теперь надо?

Теперь принято вот так:


class Demo extends React.Component {
  handleSubmit = () => {
  }
}

и возможность так делать зависит от версии babel/typescript, а не самого реакта.

Или проще даже хуками так
const Demo = () => {
    const handleSubmit = () => {
    }
}

С хуками выглядит намного хуже — слой работы с событиями таким образом помещается в функцию рендеринга, раздувая ее. Также есть кейсы, когда это роляет на перфоманс, если не обернуть в useCallback. Еще туда же хранилище пихают и асинхронные сайд-эффекты, получается лапша "все в одном".


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

Есть текущий проект на 16.9.0. Да, всё ещё нужно.
Странно, сейчас уже точно не скажу, т.к. последний раз писал на реакте около года назад, но точно помню, что года 2 мы точно такую конструкцию не использовали.
По моему, там нужен специальный proposal-dependеncy в package.json добавлять.
И мы почти полностью перешли на функциональные компоненты
Но bind никто не пишет, все давно уже используют анонимные функции.

К сожалению, не увидел ничего, кроме туториала.


Оставлю своё мнение.
После реакта я немного работал с vue, те же яйца, только в профиль.


Переход с одной стороны — легко: концептуально одно и то же.
А с другой — запоминаешь новые нюансы функционирования системы: темплейты, нейминг, vuex и т.д.
И, в итоге, всё сводится к личным предпочтениям разработчика, а не к каким-то объективным метрикам, влияющим на разработку.

Также важно отметить то, что в теге template должен быть 1 дочерний элемент
Не увидел, про какую версию vue.js говорится. В третьей версии можно создавать несколько корневых элементов. Хоть бы уточнили, что говорите именно о второй версии
Да, автору стоило бы уточнить это. Но в целом и так понятно, когда замечаешь в шаблоне использование фильтров, убранных из 3й версии.
Ну и конечно, лучше было готовить материал на основе самой свежей версии фреймворка.
Но в целом и так понятно, когда замечаешь в шаблоне использование фильтров, убранных из 3й версии
Никак не возражаю. Просто во фронтенде я чуть больше чем нуль. Временами работаю на фронте и также изучаю технологии во фронтенде, просто потому что «а почему бы и нет». Но я не занимаюсь разработкой на фронте, только что-то по мелочи исключительно для себя. Но даже я хоть какую-то теорию по новым фичам vue знаю. Статью написал, как я понял, разработчик react. И это странно (ИМХО), что он не интересуется «соседними» либами/фреймворками. Я сам PHP-разработчик, но активно слежу за node.js, django/flask, немного интересуюсь .Net (знаю основы c#, но бэкенд на нем не делал, но все равно интересно, что там происходит, что добавляют) и т.д. Наверно, слишком много воды сейчас написал. Проще говоря, автор сам frontend-разработчик на react, но, видимо, вообще не интересуется, что творится по соседству
React — это мощный и замечательный инструмент, однако вы вряд ли сможете найти хотя бы 2 одинаково структурированных проекта на этом фреймворке. [...]
Наш сегодняшний герой позволит вам не допускать путаниц и каких-то проблем с тем, когда вы, например, садитесь на новый проект.

Стандартный стек из коробки это, конечно, хорошо, но задача "быстро найти файл, который отвечает за эту кнопку" нормально не решается ни там, ни там

С этой задачей справляются CSS Modules с именованием классов [folderName]_[className]. В веб-инспекторе видишь class="FormCreateUser_submitButton", за 1 поиск по проекту находишь файл FormCreateUser.scss либо FormCreateUser.tsx, в зависимости от того, что нужно поправить, и 1 поиск по файлу для телепортации в нужное место. Все остальные способы (девтулзы, поиск по тексту), кроме поиска по уникальному id (если есть система автотестов, опирающихся на них, то они будут), намного длиннее и сложнее.

В chrome dev tools есть react Dev tools. С помощью немного можно мышцы тыкнув на кнопку узнать всю родительскую иерархию, что за пару секунд позволит узнать какой файл за это отвечает

Приведенные примеры кода написаны на Vue2, в котором единственным большим недостатком для меня была слабая поддержка тайпскрипта.

Vue3 написан на тайпскрипте что означает полную его поддержку.
Приложения на Vue3 можно писать с использованием более продвинутого синтаксиса — с использованием Composion Api (идея которого была появилась после релиза реакт хуков). После Vue2 я стал страстным поклонником этого подхода.

Минута пиара: помимо нпм загрузок есть куча других статистик по которым можно наглядно сравнивать библиотеки друг с другом — на моем проекте Moiva.io так например выглядит статистика по популярным фреймворкам moiva.io/?compare=@angular/core+react+svelte+vue
Какая библиотека используется у вас для графиков и диаграмм?
Спасибо, попробую, а то amCharts ужасно тормозит на больших массивах.
Only those users with full accounts are able to leave comments. Log in, please.