Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «matreshkajs»
Matreshka.js 1.1: еще больше крутостей 2015-09-28 09:10:24
+ развернуть текст сохранённая копия
- Matreshka.js: От простого к простому
- 10 причин попробовать Матрешку
- Matreshka.js 1.1: еще больше крутостей
- Matreshka.js: события
Документация на русском
Github репозиторий
Всем привет. Сегодня, 28 сентября исполняется два года с первого коммита в репозиторий Матрешки. Так совпало, что к этому времени подоспел новый релиз со всякими вкусностями для любого JavaScript разработчика (даже для тех, кто не хочет использовать Матрешку в качестве фреймворка).
Матрешка — это JavaScript фреймворк (или, если хотите, библиотека), основанный на акцессорах, и выжавшая из них невероятные, на первый взгляд, возможности. Помните, время, когда в JavaScript геттеры и сеттеры только-только появились? Сколько шума было вокруг них… Статьи, разговоры… Затем, всё затихло: многие не понимали, как этими возможностями воспользоваться, кроме как в простых примерах. Матрешка — это прекрасный ответ на вопрос, зачем нужны акцессоры в JavaScript.
По традиции, напомню о том, что умеет этот фреймворк с помощью маленького кусочка кода.
Раньше можно было делать только так:
// this - экземпляр Матрешки
// связываем свойство "x" с элементом на стрнице
this.bindNode('x', 'input.my-node');
// если изменилось, выводим alert
this.on('change:x', function() {
alert(this.x);
});
// меняем свойство, вызывается обработчик
// меняется и привязаннык к "x" элемент
this.x = 'Wow!';
Теперь можно еще и так:
var object = {};
// связываем свойство "x" с элементом на стрнице
MK.bindNode(object, 'x', 'input.my-node');
// если изменилось, выводим alert
MK.on(object, 'change:x', function() {
alert(object.x);
});
// меняем свойство, вызывается обработчик
// меняется и привязаннык к "x" элемент
object.x = 'Wow!';
Из-за того, что последние версии Chrome и NodeJS стали, наконец, поддерживать большинство элементов синтаксиса ES6, все примеры ниже в этом посте будут написаны на ES6. Таким нехитрым способом я хочу поздравить всех, кто считает эти нововведения невероятно крутыми и привлечь внимание к ES.next тех, кто с ними еще не знаком.
Читать дальше →
Тэги: javascript, matreshka, matreshka.js, matreshkajs, блог, веб-разработка, данных, двустороннее, компании, связывание, события, теги, читает
10 причин попробовать Матрешку 2015-04-10 00:02:44
+ развернуть текст сохранённая копия
Документация на русском
Github репозиторий
1. Чистый JavaScript и HTML
Многие фреймворки пытаются починить веб, создавая собственный язык программирования. Идея Матрешки проста: с вебом всё в порядке. Вся логика, которую пишет программист, находится, как и должна, в JavaScript файлах, а HTML остаётся языком разметки гипертекста. Шутка об HTML программисте должна остаться шуткой.
2. Минимум сущностей
Матрешка не требует создания избыточных сущностей. Благодаря простому синтаксису привязок, связь между JavaScript и HTML может быть описана там же, где и логика. Программисту не требуется задумываться сразу о нескольких вещах, размышляя о балансе полномочий объектов. Вопрос где прописать обработчик: во “вьюхе” или в контроллере отпадает сам по себе. Хотя, никто не запрещает разделить данные и контроллер, разместив их в разных JS файлах.
3. Работай с данными, забудь о представлении
Попробовав популярный (но уступающий под натиском более современных продуктов) фреймворк Backbone, сталкиваешься с серьезным неудобством: объявляя данные, зависящие от UI и UI, зависящий от данных, вам, как правило, требуется создать два обработчика события. Один ловит изменения данных, второй ловит пользовательские действия. Проблема подкрепляется еще тем, что HTML элементы, как правило, совершенно идентичны в рамках приложения: input , select , кастомные виджеты из jQuery UI могут многократно встречаться на странице. Программисту, который реализует еще одну “единицу” приложения (например, форму), приходится пользоваться “копипастой”.
С Матрешкой всё намного проще. Вам нужно лишь однажды объявить привязку (в одном месте, а не в двух), затем работать с данными (как с обычными JavaScript объектами), забыв, что у нас вообще есть представление.
Читать дальше →
Тэги: javascript, jquery, matreshka, matreshka.js, matreshkajs, блог, веб-разработка, компании, фреймфорк
Matreshka.js: От простого к простому 2015-04-08 09:20:00
+ развернуть текст сохранённая копия
Документация на русском
Github репозиторий
Всем привет! В этой статье я расскажу, как пользоваться Матрешкой на трех несложных примерах. Мы рассмотрим базовые возможности Матрешки, познакомимся с тем, как работать с данными и разберем коллекции.
Пост является краткой компиляцией первых четырех статей о Матрешке с актуальными ссылками на документацию, обновленными методами и синтаксисом.
Напомню, Матрешка — front-end фреймворк, соблюдающий несколько важных принципов, среди которых
- Никакой логики в HTML
- Минимум сущностей
- Произвольная архитектура
Матрешка реализует простой синтаксис двустороннего связывания данных и активно использует акцессоры (геттеры и сеттеры).
this.bindNode( 'x', 'input.my-node' );
this.on( 'change:x', function() {
alert( this.x );
});
this.x = 'Wow!';
Программист имеет доступ к данным, как к обычным свойствам объекта, а коллекции генерируют HTML дерево самостоятельно при добавлении, удалении и сортировке элементов. Задав несколько правил, описанных в документации, вы можете не обращать внимания на состоянии представления и работать только с данными.
Hello World!
Тэги: javascript, jquery, matreshka, matreshka.js, matreshkajs, блог, веб-разработка, компании, фреймворк
Несколько интересностей и полезностей от веб-разработчика * 2014-08-25 11:41:22
* Надеюсь, ilusha_sergeevich не обвинит меня в плагиате.
Если что, пост переименую.
< ...
+ развернуть текст сохранённая копия
* Надеюсь, ilusha_sergeevich не обвинит меня в плагиате.
Если что, пост переименую.
(Иллюстрация к donut.js)
- donut.js — микро-библиотека, рисующая бубликовые (donut chart) и круговые диаграммы
- Балалайка
- Функция procrastinate
- Противный зловред
- Совет: mousedown вместо click
- Совет: меньше используйте CDN
- Редактор SuitUp и чистка WYSIWYG от мусора
- Простейший полифил для addEventListener
- Репорт об опечатках на сайте
- vanillatree — ванильная замена jstree
- Немного опросов
Всем привет! За время работы постепенно накапливаются наработки, которыми можно было бы поделиться с сообществом. Но ни одна из этих наработок не тянет на большой полноценный пост. Поэтому я собрал все мелочи, что вспомнил, в одной статье: несколько простых опен-сорц проектов, пара советов и находок. Каждый из предложенных скриптов в этой статье поставляется как есть, под лицензией WTFPL (кроме Балалайки). С радостью приму пулл реквесты с исправлением багов или изменениями в README.
donut.js — микро-библиотека, рисующая бубликовые (donut) и круговые диаграммы
Во время работы над очередным проектом, появилась задача нарисовать много информативных бубликов на карте мира, и не просто нарисовать, а еще и поддержать ИЕ8, который, как известно, не умет SVG, а только безобразный VML. Первое, что приходит в голову, это Raphael. Порывшись некоторое время, я нашел это решение. К сожалению, автор проявил изобретательность простым хаком: на круговой диаграмме (pie chart) он нарисовал белый круг. Это решение не подошло, так как дырка бублика должна быть прозрачной. Изучение возможности рисования при помощи Raphael таких диаграмм мне показалось чересчур трудоёмким. Остальные скрипты на просторах интернета мне так же не подошли. Пришлось писать свой костыль, взяв за основу математику рисования арок этого проекта. Арки для VML версии нарисованы используя элемент arc.
var myDonutDiv = donut(options);
Читать дальше →
Тэги: addeventlistener, balalaikajs, ballalaika, donut.js, html, indeterminate, javascript, jquery, jstree, matreshka, matreshkajs, mousedown, procrastinate, suitup, typo.js, vanilla, vanillajs, vanillatree, веб-разработка, куча, тегов
Matreshka.js v0.2 2014-08-04 10:38:04
- Введение
- Наследование
- MK.Object
- MK.Array
- Matreshka ...
+ развернуть текст сохранённая копия
- Введение
- Наследование
- MK.Object
- MK.Array
- Matreshka.js v0.1
- Matreshka.js v0.2
Всем привет. Представляю очередное обновление фреймворка Matreshka.js до версии 0.2. Напомню: Матрешка — фреймворк общего назначения с окрытым исходным кодом, в идеологию которого положено доминирование данных над внешним видом: вы задаёте правила, как интерфейс должен синхронизированться с данными, затем работаете исключительно с данными, кроме случаев, когда событие интерфейса не касается данных (например, щелчек по кнопке или сабмит формы, сами по себе, не меняют данные, а запускают функцию, которая, в свою очередь, работает с данными).
ПримерМатрешка позволяет довольно просто связать данные и элементы представления (например, свойство объекта и значение поля ввода), не заботясь о дальнейшей синхронизации данных и представления. Например, самая простая привязка выглядит так:
<select class="my-select">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
Создаем экземпляр:
var mk = new Matreshka();
Связываем свойство x с элементом .my-select :
mk.bindElement( 'x', '.my-select' );
Меняем данные
mk.x = 2;
После того, как мы присвоим свойству x другое значение, остояние элемента изменися соответствующим образом.
Взгляните на живой пример
Другой важной чертой матрешки являются события (в том числе и кастомные). Например, Матрешка умеет отлавливать изменение значения свойства:
mk.on( 'change:x', function( evt ) {
alert( 'x изменен на ' + evt.value );
});
Код выведет "x изменен на Привет" :
mk.x = 'Привет';
Подробнее об этих и других фичах смотрите по ссылкам выше.
Ссылка на сайт Матрешки. Ссылка на github репозиторий.
Поддержка AMD
Матрешка теперь моддерживает спецификацию определения асинхронных модулей, Asynchronous Module Definition. Другими словами, Матрешка совместима с библиотеками, типа requirejs. Это значит, что теперь можно писать тру-код, не гадящий в глобальное пространство имен. Поддерживается два типа подключения: запрос именованного модуля и запрос безымянного модуля.
Именованные модули:
requirejs.config({
paths: {
xclass: 'path/to/matreshka',
matreshka: 'path/to/matreshka'
}
});
require(['xclass', 'matreshka'], function(Class, MK) {
return Class({
'extends': MK
//...
});
});
Но это, скорее, побочный эффыект использования новой файловой структуры проекта. А рекомендованный способ — запрос безымянного модуля:
require(['path/to/matreshka'], function( MK ) {
return MK.Class({
'extends': MK
// ...
});
});
Как видете, Матрешка содержит свойство Class , которое дублирует функцию, создающую классы: нет нужды запрашивать дополнительный модуль.
Читать дальше →
Тэги: javascript, jquery, matreshka, matreshkajs, веб-разработка
Главная / Главные темы / Тэг «matreshkajs»
|
Взлеты Топ 5
Падения Топ 5
|