@RaulDuke

Нужно ли все время инстанцировать классы в Backbone.js?

Здравствуйте,

в приведенном ниже коде при определенном состоянии роутера инстанцируется представление без помещения в переменную. В этой вьюхе происходит довольно банальная история: она аппендит в тело документа div, в котором показывает текст новости, после закрытия удаляет себя (this.$el.remove).

Pbl.classes.Router = Backbone.Router.extend({
	routes: {
		'' : 'index',
		'news/add' : 'newsAdd',
		'news/:id' : 'getNews',
	},

getNews: function(id) {
		new Pbl.classes.Views.NewsItem({
			model: new Pbl.classes.Models.NewsItem(id)
		});
	}
});


Подскажите пожалуйста:

1. Не приведет ли такой подход к утечке памяти?
2. Какие существует best practice на случай если если надо просто показать модель во вьюхе, без ее повторного использования.
3. Правильно ли выборку по id осуществлять в моделе (new Pbl.classes.Models.NewsItem(id)) или это должно происходить в роутере/представлении?

Заранее благодарен.
  • Вопрос задан
  • 189 просмотров
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Нет смысла постоянно создавать и удалять вьюхи, можно просто скрывать стилями. Это, кстати, позволит анимировать показ/скрытие.

Какие существует best practice на случай если если надо просто показать модель во вьюхе, без ее повторного использования.

Я не думаю, что есть принципиальная разница, сколько раз показывать вьюху, 1 раз или 10. Сегодня так, а завтра проект развился, требования поменялись, и стало эдак.

Правильно ли выборку по id осуществлять в моделе

Хм, обычно выбирают из коллекции... А откуда вызывать эту выборку -- вопрос организации. У меня всегда роутеры тупые и просто стреляют событиями, а весь связущий код во вьюхах (которые вообще-то контроллеры, особенно если юзать двухстороннее связывание). Но, наверное, можно и как-то по другому, главное, помнить принцип единственной ответственности.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы