Когда использовать какие функции Durandal?
Я новичок в Durandal и до сих пор люблю его, но мне интересно, какие у него проблемы с архитектурой приложений. Например, когда хорошее время для использования ko: compose
против виджетов против дочерних представлений против представлений?
Мои текущие мысли:
Используйте представления для полных страниц
Используйте дочерние представления или ko: compose
взаимозаменяемо для дочерних страниц
Используйте виджеты для дочерних представлений, используемых более чем в одном месте
Совпадает ли это с ожидаемым вариантом использования? Я знаю, что Durandal очень настраиваемый, но исходя из структуры Starter Kit и использования утилит по умолчанию (knockout.js, jquery, sammy и т. Д.), В какое время следует использовать каждый из вышеуказанных элементов?
1 ответ
Добро пожаловать на борт и обязательно ознакомьтесь с документацией по адресу http://durandaljs.com/pages/docs/, где представлен хороший обзор.
При поиске функций Durandal, которые позволяют составлять фрагменты DOM, я обычно различаю модели представления, которые являются одиночными (уникальными, есть только одна из них) или конструкторами (может быть одним или несколькими). По соглашению модели представлений соединяются с файлом *.html с тем же именем.
например, посмотрите на shell.html в образце Durandal shell.html против shell.html JumpStarter
В обоих примерах shell.js
вернуть синглтон, так как есть только одна оболочка, но во втором примере извлечь html навигации в его собственное дочернее представление. Как вы видите, дочерний вид не имеет своего собственного vm, он связан с родителем (здесь shell.js
) вместо Тем самым вы создаете меньшие, более простые в обслуживании фрагменты, которые при необходимости могут быть использованы в других местах.
Для примера, который использует функцию конструктора для vm, ознакомьтесь с образцом основной детали.
Виджеты представляют собой особую форму vm/view((controller.js/view.html) и могут быть рассмотрены, если необходимо настроить эти элементы немного по-разному в зависимости от контекста, в котором они работают. Одним из примеров могут быть элементы формы, работающие как часть модальной формы против встроенного.
С Durandal 1.2 только виджеты могут получать дополнительные данные во время композиции, но это изменится в предстоящем 2.0.