Обложка канала

Я фрилансер

281 @fl_me

Личный блог. Мой путь от нулевого знания языков программирования до заработка >30$ в час на биржах фриланса. Рассказываю свою историю, делюсь опытом, пишу про IT в целом.

Я фрилансер

8 лет назад
Открыть в
Бывает такое, беру проекты, что бы освоить или закрепить работу с новыми или мало используемыми технологиями. Так получилось с vuejs. До проекта emarket, который мне заказали пару месяцев назад, я пользовался чистым js + jquery с его плагинами. Но теперь, как мне кажется, могу с уверенностью отказаться от jquery и полностью перейти на vuejs, поскольку последний изрядно подрос и набрал в весе, - много готовых решений на этом фрэймворке. А что еще нужно для быстрой разработки? По моему идеально.

У меня есть небольшой опыт на angularjs и react. Но я пишу не для сравнения этих проектов. Скорее для тех, кто интересуется vuejs и еще не начал использовать его в своей работе.

Компоненты - это удобно.
Повторяющийся код можно вынести в отельные компоненты. При этом легко передавать параметры между компонентами через свойства props и влиять на родителя через emmit. И все это реактивно отрисуется на веб-странице.

HTML-шаблоны, списки, условная отрисовка - можно навсегда забыть про innerHTML и кучу действий, что бы добавить или извлечь элемент из DOM. Vue это делает через v-if, v-for.
Простые примеры:
v-if
<div v-if="Math.random() > 0.5">
Сейчас меня видно
</div>
<div v-else>
А теперь &mdash; нет
</div>
v-for
<ul id="example-2">
<li v-for="(item, index) in items">
{{ parentMessage }} - {{ index }} - {{ item.message }}
</li>
</ul>

Vuex — управление состоянием приложения.
Невозможно обойтись без него, если делать клиент сложнее todo листа и взаимодействие с сервером. Один запрос и все приложение получило нужные данные, которые сразу отрисовались в компонентах. По моему мнению, стоить сразу начать разработку на vue с vuex.

Низкий порог вхождения - для меня плюс.
Всё что необходимо для начала работы с Vue — это знакомство с HTML и обыкновенным (ES5) JavaScript’ом.

Что мне не понравилось?
Наверное это server side rendering, точнее множество проблем, которые у меня возникли при попытке его использования. И дело не в vuejs, а в сторонних библиотеках, которые я использовал и без которых разработка затянулась бы еще на месяц. Проблема в том, что многие библиотеки пишутся без расчета на SSR. Поэтому, если нужно использовать сторонние решения и SSR, стоит обратить внимание на совместимость.