Когда использовать какие функции 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.

Другие вопросы по тегам