Автор оригинала: FreeCodeCamp Community Member.
Jacek Schae.
Каждый язык, который соответствует/транспортирует JavaScript, хочет подключиться к NPM, чтобы использовать эту огромную экосистему. Мастер этого – это, конечно, Ecmascript. Второй – в моем скромном мнениях – это clojurecript, из-за Shadow-Cljs Отказ
Установка пакетов NPM
В CloJuScript мы устанавливаем пакеты NPM, поскольку мы будем в JavaScript. Мы используем стандартный Package.json и Shadow-Cljs Создайте инструмент, и вы выясните остальные.
После установки мы должны потребовать пакета. требуется Заявление почти идентично Импорт от JS. В CLJS мы поменяем заказ – сначала мы говорим от того, где, а потом что.
Каждый файл clojurecript начинается с ns – декларации пространства имен. Следующее, что мы требуем вместо импорта. И тогда мы определяем функцию с defn. Эта функция будет касаться наших необходимых пакетов FireBase и вместо использования. Чтобы перейти к нашему методу INATIVEISEAPP, мы используем/. Мы уверены, что когда мы вызываем метод JS INATIVEISEAPP Мы конвертируем карту CLJS (Datastructure) к объекту JS с #js Отказ
Давайте попробуем некоторые другие пакеты NPM, чтобы получить лучшее ощущение для взаимодействия между NPM и Clojurecript.
Реагировать
Как насчет использования реагирования? Clojurectscript имеет пару обертков для реагирования – самый популярный – это Реагент . Вот простой пример счетчика с реактивными крючками и реагентом.
В обоих примерах мы впервые импортируем/требуют реагирования и реагента. Затем мы определяем состояние в реакции, используя крюки (и в реагенте с использованием атомов).
Далее следует компонент JSX (JavaScript) и Hiccup (Clojurecript).
Это круто, но как мы используем библиотеки реактивных интерфейсов от реагента?
Реагистрирование библиотек UI
Одним из самых популярных библиотек интернет-пользователей является Материал-ui Отказ После установки нам требуется эта библиотека, а затем импортируйте наш компонент кнопки, а также реагируют. В скрипте Clojure нам требуется только кнопка. Нам не нужно требовать реагента, поскольку он в нашем Clojurecript DEPS. Чтобы включить реагирование, мы бы использовали : & GT; Форма и пройти все свойства, которые мы хотим в А {}.
Redux.
Как насчет redux, вы можете спросить? Ну, есть библиотека, которая основана на вершине реагента, называется Перезапись Отказ Первый спроектирован в декабре 2014 года, он даже предварительно даты официально Элма архитектура Отказ
К настоящему времени у вас должна быть довольно хорошая картина, поскольку CLJS любит экосистему NPM и насколько легко взаимодействовать от CLJS до JS. Может быть, это интересно для вас, и вы задаетесь вопросом, почему? Почему вы даже хотите попробовать clojurecript?
Почему?
Неизменный
Все структуры данных CLOJURESCRITP являются неизменными и постоянными. Вам не нужно выучить новую API, если вы хотите использовать что-то вроде Immutablejs Отказ
Функционал
Clojurectscript охватывает функциональные программированные идеи в своем ядре. Вам не нужно Лоташ или Рамда Отказ
Простой
С Shadow-Cljs Вам не нужно проводить время настроить ваши сборки. Вам требуется то, что вам нужно, и инструмент сборки сделает работу.
Краткий
Вы обязательны, вы пишете. Clojurecript – один из кратких языков программирования там. Проверьте последний раздел Это сравнение Отказ
Мощный
Clojurecript использует Инструменты закрытия Google Для кода-минификации и тряске дерева. Те же инструменты, которые Google использует для создания Gmail, Calendar Google, Google Docs и Google Maps.
Javascript
Он компилирует/транкии для JavaScript. Так же, как ES (Ecmascript) RUBINGML, Purescript и Elm.
Дружелюбный
Сообщество Clojurecript – самая дружелюбная и приветственная группа людей, которые я когда-либо встречал онлайн. Мы в основном тусоваться на Слабый и Clojureverse Отказ
Полный стек
Старший брат Clojurecript, Clojure, охватывает все эти идеи с Java. Если вы хотите написать свой сервер на одном из самых исполнительных и стабильных платформ, есть – виртуальная машина Java – вы можете сделать это, используя тот же язык.
Оригинал: “https://www.freecodecamp.org/news/why-clojurescript-works-so-well-with-npm-128221d302ba/”