Intl: JavaScript i18n

При создании веб приложений часто приходится решать однотипные задачи интернационализации. Получить строку с относительной датой (например, 1 day ago), вывести форматированную стоимость товара с указанием валюты или сравнить строки (подходящим для выбранного языка способом). JavaScript развивается достаточно быстро. В нем появились и развитые средства интернационализации.

Читать далее

Vue.js provide/inject

При создании сложных Vue приложений приходится решать много задач по разделению кода на части (компоненты и прочее). Когда мы уже разбили большой кусок кода на некую иерархию компонентов, то обычно передаем вложенным компонентам данные через свойства. Но если глубина, на которую необходимо передать данные вниз по дереву больше 1 уровня, то передавать через свойства не то, что неудобно, но и неправильно.

Читать далее

Vue.js scoped slots и renderless component

Продолжая рассматривать способы повторного использования кода в vue.js (тема затронута ранее в статьях Повторное использование кода Vue.js и Vue.js Composition API) можно встретить упоминания некоего приема с использованием не отображаемых компонентов и слотов с ограниченной областью видимости (scoped slots).

Читать далее

Vue.js Composition API

Продолжая разбирать тему повторного (начало в статье Повторное использование кода Vue.js) использования кода Vue.js, я пришел к Composition API, который является основным новшеством Vue 3. Его также можно использовать во 2 версии Vue, если установить как отдельный пакет. В сети эти изменения вызвали бурное обсуждение, зачастую негодование, среди тех, кто пользуется данным фреймворком и  создал не мало кода на старом API (Options API). Давайте разберемся почему появился новый API, как его использовать и в чем его плюсы.

Читать далее

Повторное использование кода Vue.js

По мере усложнения приложения, в котором львиная доля кода использует Vue.js, возникает вопрос повторного использования кода. Когда возможности расширить тот или иной компонент с помощью параметров или слотов уже не удовлетворяют всех потребностей, можно прибегнуть в другим способам.

Читать далее

Web Workers API

Web Workers API служит для запуска скриптов в фоне. Если нам необходимо запустить в фоне какие-либо вычисления, да еще и в несколько потоков, то это подходящий инструмент для таких целей. Так как работа происходит в фоне, то при этих вычислениях рендеринг страницы не блокируется. Все происходит параллельно.

Читать далее

Angular Light

Одной из проблем AngularJS называют его сложность. Однако принцип описания поведения веб-приложения через директивы в html коде все же интересен. Поэтому на свет появились такие библиотеки как CornerJs и Angular Light (aLight).

И если первая не развивается уже около года, то вторая продолжает радовать своих последователей новым функционалом. По заявлению автора, некоторых возможностей aLight нет в самом AngularJS.

Читать далее

ReactJs

React.js — фреймворк для создания интерфейсов от Facebook. Он позволяет создавать интерфейсы. В известном паттерне Model-View-Controller наш React ближе всего к пользователю. Он отвечает за представление данных, получение и обработку ввода пользователя. Где и в каком виде вы храните данные, как вы общаетесь с хранилищем, дело ваше. React — это только представление (View) вашего приложения, а не фреймворк на все случаи жизни.

Читать далее

KnockoutJs

Сегодня решил покрутить в руках следующий js-фреймворк — Knockout.JS и отметить его различия с другими. Он, как выяснилось, реализует Model-View-ViewModel шаблон проектирования. В данном шаблоне есть следующие составляющие:

  • Модель. Сущность (данные), как и в MVC
  • Представление. Это графический интерфейс
  • Модель представления (ViewModel). Связующее звено между Представлением и Моделью. Представление подписано на события ViewModel, а сама ViewModel содержит методы, с помощью, которых Представление может влиять на Модель.

Для того, чтобы пощупать Knoickout у них на сайте есть прекрасный интерактивный учебник. По нему очень удобно можно шаг за шагом освоить принципы построения приложения на данном фреймворке.

Читать далее

Ember.Js

Продолжаю знакомство с различными MVC JS решениями. И сегодня черед Ember.JS, который во многом похож на Angular.JS и является ответвлением SproutCore.

В статье про Angular  у нас был пример с формой, которая отображала результат мгновенно, как только пользователь введет что-нибудь в поле ввода.

Так вот на официальном сайте Ember.JS есть похожий пример.

Читать далее

BackBone.Js

В прошлой статье был описан фреймворк Angular.JS. И конечно же уже давно в воздухе висит вопрос «как там дела в других фреймворках?». Вот перехожу к разбору BackBone. Хотя формально Backbone — это библиотека, а не фреймворк.

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

HTML-код примера совсем простой. Здесь пара кнопок и место под будущий список.

Читать далее