SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
EXTENDER JQUERY PARA CREAR COMPONENTES WEB
PERSONALIZADOS
Autor: Ing. Hector Curbelo Barrios.
Email: hcurbelo@gmail.com
Quito, Ecuador
Año 2017
INTRODUCCION
En el artículo anterior vimos cómo podemos hacer para usar jQuery como MVC y HMVC,
y de esta manera hacer mejor la lógica de nuestro código, así como desacoplamiento de
funcionalidades, extensibilidad de nuestra aplicación entre otras.
En el presente artículo pretendo mostrarles cómo podemos crear nuestros propios
componentes personalizados y adaptados a la aplicación que estamos realizando.
Moviéndonos en este contexto nos encontramos con algunos conceptos importantes
para entender bien todo lo relacionado a los componentes.
La programación orientada a componentes (que también es llamada basada en
componentes) es una rama de la ingeniería del software, con énfasis en la descomposición
de sistemas ya conformados en componentes funcionales o lógicos con interfaces bien
definidas usadas para la comunicación entre componentes. Un componente de
software es un elemento de un sistema que ofrece un servicio predefinido, y es capaz de
comunicarse con otros componentes.
La capacidad de ser reutilizado (reusability), es una característica importante de los
componentes de software de alta calidad. Un componente debe ser diseñado e
implementado de tal forma que pueda ser reutilizado en muchos programas diferentes.
Si hacemos una búsqueda podemos encontrar que existen importantes aportes a estos
temas, aquí les dejos un par de link:
https://www.npmjs.com/package/jquery-component
https://jqueryui.com/demos/
https://speckyboy.com/50-fundamental-jquery-controls-and-rich-ui-components/
https://es.slideshare.net/YnonPerek/jquery-ui-16428949
DESARROLLO
jQuery es uno de los Framework o Librería JavaScript más usado que existen en la
actualidad, es muy robusto para el uso del DOM, además que es fácil de usar y de
aprender.
Podemos encontrar algunos frameworks que usan estos conceptos como parte de su
lógica como es, por ejemplo:
React: https://facebook.github.io/react/
Si buscamos encontraremos otros que también podemos usar, pero para los que amamos
jQuery nos cuesta apartarnos de él, por lo que buscamos formas de potenciarlo para
seguir usándolo.
Como pudimos leer en la introducción vamos a ver cómo podemos extender jQuery para
crear nuestros propios componentes Web personalizados:
Pongamos una situación, por ejemplo:
Estamos desarrollando una aplicación Web, y requerimos crear varios <select></select>
en diferentes partes en nuestro desarrollo y que además el contenido de estos select se
va a generar dinámicamente, ya sea desde nuestra base de datos o un servicio Web.
Usualmente en cada momento que lo vamos a crear ahí creamos la etiqueta y la
llenamos, esto es muy tedioso sobre todo cuando el desarrollo es grande, además es
bueno reutilizar un código y hacerlo uno salo vez.
Pues para solucionar esto realizamos nuestros componentes y luego solo lo
reutilizamos, vamos a ver un ejemplo:
1. Partiendo de la organización HMVC del artículo anterior tenemos:
2. Ejemplo de un componente:
Veamos como creamos un componente, en este caso lo haremos con un <select>,
por lo que dentro del directorio Components creamos un archivo con el nombre
select.js:
El código:
jQuery.extend
({
select:function ()
{
var that = this;
//-- defined var
var $select = $('<select class="" id=""></select>');
//--Create Message view
this.input_select = function(option,id,content_id,class)
{
$select.attr('id',id);
$select.attr(class);
$.each(option, function (key, val)
{
$select.append('<option value="'+val+'">'+val+'</option>');
});
$('#'+content_id).append($select.change(function ()
{
that.get(val);
}
));
}
//--Select Get
this.get = function (val)
{
alert(val);
});
}
});
+ Components
+ Project Name
+ Modules
- Components
- Select.js
Vamos a explicar el código:
var $select = $('<select class="" id=""></select>');
Creamos un objeto que contiene los elementos de una select básico.
this.input_select
Esta es la función encargada de crear el select, se le pasan cuatro parámetros, que como
son:
Option: valores que van a ser añadidos dentro del select como las opciones de este.
Id: Si quieres que el select tenga un identificador único.
Content_id: Es el identificador del contenedor donde vas a visualizar el select.
Class: La clase del estilo que le vas a aplicar al select.
Con la propiedad append podemos adicionar elemento a cualquier objeto del DOM en
nuestro HTML, además podemos asignarle funciones a nuestro elemento, como se
demuestra en anterior código.
3. Como usamos el componente que hemos desarrollado.
1. Primero, creamos una función para la inclusión dinámica de los componentes.
2. Aquí incluimos dinámicamente el componente <select>, lo instanciamos y creamos el
objeto, entonces hacemos uso de las funciones creadas como se muestra en el código:
Bueno espero les aporte sus desarrollos, alguna duda o consultas, contactarme.
Ing. Hector Curbelo Barrios
hcurbelo@gmail.com
Query.component = function( file, options )
{
var url=baseurl+"assets/component/"+file+'.js';
options = $.extend( options || {}, {
dataType: "script",
cache: true,
url: url,
async: false
});
return jQuery.ajax( options );
};
//--Include View intance Object
$.component("select");
var obj_select = new $.select();
obj_select.input_select_bk(option,'bkinfo-select','content-bkinfo','Class name')

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Resumen el gran libro de andorid
Resumen el gran libro de andoridResumen el gran libro de andorid
Resumen el gran libro de andorid
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
Angularjs
AngularjsAngularjs
Angularjs
 
6.android introduccion
6.android   introduccion   6.android   introduccion
6.android introduccion
 
Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Elementos Swing
Elementos SwingElementos Swing
Elementos Swing
 
Clase swing
Clase swingClase swing
Clase swing
 
Java script
Java scriptJava script
Java script
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Diapositivas sobre AWT
Diapositivas sobre AWTDiapositivas sobre AWT
Diapositivas sobre AWT
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Diferencias swing y awt
Diferencias swing y awtDiferencias swing y awt
Diferencias swing y awt
 
Curso de Android 4.x Unidad 03 Hola Mundo
Curso de Android 4.x Unidad 03 Hola MundoCurso de Android 4.x Unidad 03 Hola Mundo
Curso de Android 4.x Unidad 03 Hola Mundo
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
WebDriver API Starting
WebDriver API Starting	WebDriver API Starting
WebDriver API Starting
 
Patron fachada...
Patron fachada...Patron fachada...
Patron fachada...
 
Angular js
Angular jsAngular js
Angular js
 
Curso de Android 4.x : Unidad 04 Componentes
Curso de Android 4.x : Unidad 04 ComponentesCurso de Android 4.x : Unidad 04 Componentes
Curso de Android 4.x : Unidad 04 Componentes
 

Similar a Extender Jquery para crear componentes web personalizados

Org tutorial struts_2010
Org tutorial struts_2010Org tutorial struts_2010
Org tutorial struts_2010Omar Rios
 
Introduccion a j query
Introduccion a j queryIntroduccion a j query
Introduccion a j queryPablo Viteri
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corporacion de Industrias Tecnologicas S.A.
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......SaulSalinasNeri
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQueryContinuum
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Renan Cayao
 

Similar a Extender Jquery para crear componentes web personalizados (20)

Guiajquery
GuiajqueryGuiajquery
Guiajquery
 
Org tutorial struts_2010
Org tutorial struts_2010Org tutorial struts_2010
Org tutorial struts_2010
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
 
Introduccion mvc
Introduccion mvcIntroduccion mvc
Introduccion mvc
 
Introduccion a j query
Introduccion a j queryIntroduccion a j query
Introduccion a j query
 
Manual Basico De Struts
Manual Basico De StrutsManual Basico De Struts
Manual Basico De Struts
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
Corp. In. Tec. S.A. - Capacitaciones en Informática - Programación con CodeIg...
 
Manual android
Manual androidManual android
Manual android
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......Programación_del_lado_del_servidor......
Programación_del_lado_del_servidor......
 
Introducción a JQuery
Introducción a JQueryIntroducción a JQuery
Introducción a JQuery
 
JQUERY.pptx
JQUERY.pptxJQUERY.pptx
JQUERY.pptx
 
DAM-S7.pptx
DAM-S7.pptxDAM-S7.pptx
DAM-S7.pptx
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...Implementacion de un portal web para la automatización del proceso de consult...
Implementacion de un portal web para la automatización del proceso de consult...
 

Extender Jquery para crear componentes web personalizados

  • 1. EXTENDER JQUERY PARA CREAR COMPONENTES WEB PERSONALIZADOS Autor: Ing. Hector Curbelo Barrios. Email: hcurbelo@gmail.com Quito, Ecuador Año 2017
  • 2. INTRODUCCION En el artículo anterior vimos cómo podemos hacer para usar jQuery como MVC y HMVC, y de esta manera hacer mejor la lógica de nuestro código, así como desacoplamiento de funcionalidades, extensibilidad de nuestra aplicación entre otras. En el presente artículo pretendo mostrarles cómo podemos crear nuestros propios componentes personalizados y adaptados a la aplicación que estamos realizando. Moviéndonos en este contexto nos encontramos con algunos conceptos importantes para entender bien todo lo relacionado a los componentes. La programación orientada a componentes (que también es llamada basada en componentes) es una rama de la ingeniería del software, con énfasis en la descomposición de sistemas ya conformados en componentes funcionales o lógicos con interfaces bien definidas usadas para la comunicación entre componentes. Un componente de software es un elemento de un sistema que ofrece un servicio predefinido, y es capaz de comunicarse con otros componentes. La capacidad de ser reutilizado (reusability), es una característica importante de los componentes de software de alta calidad. Un componente debe ser diseñado e implementado de tal forma que pueda ser reutilizado en muchos programas diferentes. Si hacemos una búsqueda podemos encontrar que existen importantes aportes a estos temas, aquí les dejos un par de link: https://www.npmjs.com/package/jquery-component https://jqueryui.com/demos/ https://speckyboy.com/50-fundamental-jquery-controls-and-rich-ui-components/ https://es.slideshare.net/YnonPerek/jquery-ui-16428949
  • 3. DESARROLLO jQuery es uno de los Framework o Librería JavaScript más usado que existen en la actualidad, es muy robusto para el uso del DOM, además que es fácil de usar y de aprender. Podemos encontrar algunos frameworks que usan estos conceptos como parte de su lógica como es, por ejemplo: React: https://facebook.github.io/react/ Si buscamos encontraremos otros que también podemos usar, pero para los que amamos jQuery nos cuesta apartarnos de él, por lo que buscamos formas de potenciarlo para seguir usándolo. Como pudimos leer en la introducción vamos a ver cómo podemos extender jQuery para crear nuestros propios componentes Web personalizados: Pongamos una situación, por ejemplo: Estamos desarrollando una aplicación Web, y requerimos crear varios <select></select> en diferentes partes en nuestro desarrollo y que además el contenido de estos select se va a generar dinámicamente, ya sea desde nuestra base de datos o un servicio Web. Usualmente en cada momento que lo vamos a crear ahí creamos la etiqueta y la llenamos, esto es muy tedioso sobre todo cuando el desarrollo es grande, además es bueno reutilizar un código y hacerlo uno salo vez.
  • 4. Pues para solucionar esto realizamos nuestros componentes y luego solo lo reutilizamos, vamos a ver un ejemplo: 1. Partiendo de la organización HMVC del artículo anterior tenemos: 2. Ejemplo de un componente: Veamos como creamos un componente, en este caso lo haremos con un <select>, por lo que dentro del directorio Components creamos un archivo con el nombre select.js: El código: jQuery.extend ({ select:function () { var that = this; //-- defined var var $select = $('<select class="" id=""></select>'); //--Create Message view this.input_select = function(option,id,content_id,class) { $select.attr('id',id); $select.attr(class); $.each(option, function (key, val) { $select.append('<option value="'+val+'">'+val+'</option>'); }); $('#'+content_id).append($select.change(function () { that.get(val); } )); } //--Select Get this.get = function (val) { alert(val); }); } }); + Components + Project Name + Modules - Components - Select.js
  • 5. Vamos a explicar el código: var $select = $('<select class="" id=""></select>'); Creamos un objeto que contiene los elementos de una select básico. this.input_select Esta es la función encargada de crear el select, se le pasan cuatro parámetros, que como son: Option: valores que van a ser añadidos dentro del select como las opciones de este. Id: Si quieres que el select tenga un identificador único. Content_id: Es el identificador del contenedor donde vas a visualizar el select. Class: La clase del estilo que le vas a aplicar al select. Con la propiedad append podemos adicionar elemento a cualquier objeto del DOM en nuestro HTML, además podemos asignarle funciones a nuestro elemento, como se demuestra en anterior código. 3. Como usamos el componente que hemos desarrollado. 1. Primero, creamos una función para la inclusión dinámica de los componentes. 2. Aquí incluimos dinámicamente el componente <select>, lo instanciamos y creamos el objeto, entonces hacemos uso de las funciones creadas como se muestra en el código: Bueno espero les aporte sus desarrollos, alguna duda o consultas, contactarme. Ing. Hector Curbelo Barrios hcurbelo@gmail.com Query.component = function( file, options ) { var url=baseurl+"assets/component/"+file+'.js'; options = $.extend( options || {}, { dataType: "script", cache: true, url: url, async: false }); return jQuery.ajax( options ); }; //--Include View intance Object $.component("select"); var obj_select = new $.select(); obj_select.input_select_bk(option,'bkinfo-select','content-bkinfo','Class name')