$.fn
ist nur ein Objekt. Es gibt keine Magie beim Hinzufügen einer neuen Eigenschaft zu dem Prototyp $
. Also ist der Code $.fn.myPlugin = function() {}
gleich $.prototype.myPlugin = function() {}
.
$.fn === $.prototype; // true
der Lage sein, eine Funktion auf das $
Objekt in einem Standardverfahren zu nennen ($('div').func()
), müssen Sie diese Funktion auf das $
Objekt hinzuzufügen.
Sie fügen es nicht in Ihrem es6-Code hinzu.
So
import $ from 'jquery';
export default class myPlugin extends $ {
// Could i use constructor() method ???
}
Mittel (fast)
var myPlugin = function() {};
myPlugin.prototype = Object.create($.prototype);
return { default: myPlugin };
Ich bin nicht sicher, dass Sie .FN $ verlängern sollte, aber vielleicht müssen Sie es.
Und mit
import $ from 'jquery';
import myPlugin from 'myPlugin.es6';
bedeutet es
var $ = require('jquery');
var myPlugin = require('myPlugin'); // a reference to the 'export.default' object from 'myPlugin.es6'
Daher besteht keine Verbindung zwischen $.fn
Objekt ist und myPlugin
Funktion.
Sie sollten die Verbindung irgendwo erstellen. Es könnte wie plugins
in einem speziellen Modul, wo Sie alle benötigten Plugins in das $.fn
Objekt injizieren werden:
import $ from 'jquery';
import plugin1 from 'plugin1.es6'; // should contain 'name'
import plugin2 from 'plugin2.es6';
...
import plugin10 from 'plugin10.es6';
[plugin1, plugin2, ..., plugin10].forEach(plugin => $.fn[plugin.name] = plugin);
Oder Sie könnten eine ‚initialisieren‘ Methode, um das exportierte Objekt in ‚myplugin hinzuzufügen.es6 ', und rufen Sie es vor der ersten Verwendung: init($) { $.fn.myPlugin = myPlugin; }
Und so weiter.
'erstreckt' $ macht keinen Sinn. Hast du gedacht, dass es dasselbe wie '$ .extend ({...})' bedeutet? – Bergi
Wenn Sie sich neue Javascript-Funktionen ansehen, brauchen Sie wahrscheinlich jQuery nicht. Es gibt viele eigenständige UI-Bibliotheken, die jQuery nicht benötigen. Außerdem gibt es eine spezielle Website http://youmightnotneedjquery.com/, die erklärt, wie man von jQuery zu nativen Funktionen wechselt. –