Какая форма лучше?
(defn my-func [arg arg2]
(fn [] [:div (str arg arg2)]))
Или этот?
(defn my-func []
(fn [arg arg2] [:div (str arg arg2)]))
Пишу со своего телефона, так что простите за отступы ...
Какая форма лучше?
(defn my-func [arg arg2]
(fn [] [:div (str arg arg2)]))
Или этот?
(defn my-func []
(fn [arg arg2] [:div (str arg arg2)]))
Пишу со своего телефона, так что простите за отступы ...
Между этими функциями есть еще одно различие, помимо арности.
Первая функция закроется через arg
и arg2
при первом рендеринге и будет использовать эти аргументы для каждого последующего повторного рендеринга. Например.
(def a 1)
(def b 2)
[my-func a b]
всегда будет приводить к [:div '12']
независимо от того, были ли изменены a
или b
Вторая функция будет принимать arg
и arg2
при каждом рендеринге и обновит результат при изменении аргументов.
Найдите ошибку новичка в документы по реагентам
Я считаю, что ваш вопрос должен заключаться в том, какой из них правильный (первый правильный). У второго есть исключение arity. В зависимости от вашего варианта использования я бы предпочел определить и вызвать анонимную функцию, чтобы получить результаты. Рассмотрим это редактирование номер один:
(defn my-func [arg arg2]
((fn [] [:div (str arg arg2)])))