Envo

smike

Новичок
Понимаю что во времена Angular, React и прочих фреймоврков может быть не очень актуально, но все же решил опубликовать свою простенькую библиотеку для огранизации плагинов старого доброго jQuery. Библиотка решает следующие задачи:
  • Организация кода плагина в виде псевдо-класса
  • Наследование плагинов
  • Передача параметров в плагин
  • Подключение плагинов к странице
  • Ajax-перзагрузка плагинов
  • Подписка на события
Если кому интересно, прошу сюда: https://bitbucket.org/grifix/envo
Примеры использования тут: https://bitbucket.org/grifix/envo/src/9797aadfa7a4a75b9b8a9dc5949aa9546e5d2bd3/examples/?at=master
 

smike

Новичок
Так вылядит код простого плагина:
Код:
(function ($) {
    var parent = envo.Plugin; // Плагин от которого наследуется данный плагин
    var prototype = envo.makePluginPrototype(
        'demo.PluginA', // Название псевдо-класса плагина (используется при наследовнии)
        'demo_pluginA', // Имя плагина (используется для подключиня плагина к DOM-элементам)
        parent,
        {
            message: 'Hello world!' //Конфигурация плагина по умолчанию
        }
    );
   
    // Функция которая подключается к плагину в момент наложения его на DOM елемент
    prototype.init = function () {
        var that = this;
       
        that.elButton = that.find('button');
        that.elButton.click(function () {
            that.showMessage();
        });
       
        parent.prototype.init.call(that);
    };
   
    // Метод псевдо-класса плагина
    prototype.showMessage = function () {
        var that = this;
        alert(that.cfg.message);
        return that.el();
    };
})(jQuery);
А это плагин который его наследует:
Код:
(function ($) {
    var parent = demo.PluginA;
    var prototype = envo.makePluginPrototype(
        'demo.PluginB',
        'demo_pluginB',
        parent
    );
    
    prototype.showMessage = function () {
        var that = this;
        parent.prototype.showMessage.call(that);
        confirm("Are you sure!");
        return that.el();
    };
})(jQuery);
 

fixxxer

К.О.
Партнер клуба
во времена Angular, React и прочих фреймоврков может быть не очень актуально
Это, конечно, тоже, но вот отсутствие возможности подключения через npm или хотя бы bower - это ныне уже чересчур. Composer.json вижу, но не понимаю, зачем оно для чисто фронтенд-библиотеки.
 

smike

Новичок
Это, конечно, тоже, но вот отсутствие возможности подключения через npm или хотя бы bower - это ныне уже чересчур. Composer.json вижу, но не понимаю, зачем оно для чисто фронтенд-библиотеки.
Пытаюсь зарегить, но что-то не получается, что я делаю не так?
Код:
smike@smike-pc:~/docker/dev/www/envo/public$ bower register envo [email protected]:grifix/envo.git
bower envo#*                   resolve [email protected]:grifix/envo.git#*
bower envo#*                  checkout 1.0.5
bower envo#*                  resolved [email protected]:grifix/envo.git#1.0.5
? Registering a package will make it installable via the registry (https://bower.herokuapp.com), continue? Yes
bower envo                    register [email protected]:grifix/envo.git

Usage:

    bower register <name> <url> [<options>]

Options:

    -f, --force             Bypasses confirmation. Bower login is still needed.
    -h, --help              Show this help message
    Additionally all global options listed in 'bower help' are available

Description:

    Registers a package.
smike@smike-pc:~/docker/dev/www/envo/public$
 
Сверху