Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

187
Visualizações
cómo escribir una función común en un elemento iluminado

Tengo algunos componentes web creados con elementos iluminados. Y eso incluye algunas solicitudes de API para enviar y obtener datos de otro sitio y espero enviar algunos datos a través del encabezado de solicitud de API. Así que espero crear una función común para contener esos detalles del encabezado en caso de que necesite cambiarlos en el futuro, no necesitaré editar esos componentes uno por uno. Necesito una solución como la siguiente:

common_function.js

 function api_request(url) { // content }

mi_componente.js

 import '/common_function.js'; ... constructor(){ api_request('http://apiRequestUrl'); }

Por favor, hágame saber una forma de lograr esto usando el elemento iluminado. Gracias por adelantado.

over 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Ok... Encontré una solución. Pero no sé si esta es la respuesta perfecta para esto. Podemos usar controladores reactivos iluminados para hacer el trabajo. Aquí está el ejemplo Cómo lo hice.

common_function.js

 import {initialState, Task} from '@lit-labs/task'; import * as SETTINGS from "../../bmw_settings"; export class ApiRequestController { host; url; id; task; data = ''; _bmw_send_api_request() { this.task = new Task( this.host, async ([data]) => { const response = await fetch( `${SETTINGS.BASE_URL + this.url}`, { headers: { "Content-Type": "application/json", 'Access-Control-Request-Headers': 'Api-key, Content-Type', 'Api-key': '123' } } ); const result = await response.json(); const error = result.error; if (error !== undefined) { throw new Error(error); } return result; }, () => [this.data] ); } constructor(host, url, id) { this.host = host; this.url = url; this.id = id; this._bmw_send_api_request(); } set data(value) { this.data = value; this.host.requestUpdate(); } get data() { return this.data; } render(renderFunctions) { return this.task.render(renderFunctions); } }

mi_componente.js

 import { LitElement, html} from 'lit'; import {ApiRequestController} from '../../common_functions'; class search_bar extends LitElement { static properties = { provider_type : String, reasons : Array, } constructor() { super(); this._getAllReasons(); } async _getAllReasons(){ this.reasons = await new ApiRequestController(this, '/api/v1/get-reasons', 'search_bar'); } render() { return html ` ${this.reasons.render({ complete: (data) => html ` <p>Reasons List</p> <select> <option>Select Reason</option> ${data.data.map((val) => html `<option value="${val.id}">${val.reason}</option>` )} </select> `, })} `; } } customElements.define('search-bar', search_bar)

use esta documentación si necesita más detalles. Gracias

over 4 years ago · Juan Pablo Isaza Relatório

0

Cómo crear una función común que pueda importar y reutilizar no tiene nada que ver con lit.

Entonces, cuando tiene una función común en un archivo llamado 'common.js':

 export default txt => { console.log('Hello from a common function!', txt); }

Puede usarlo en otro archivo javascript, incluidos los componentes iluminados, como este:

 import commonfunction from '/path/to/your/common.js'; commonfunction('Wow!');

Lo que puede ser un problema (pero que no es su pregunta) es que su navegador no importa iluminado con la importación iluminada que puede haber especificado ... porque puede ser un paquete npm en su servidor. Incluso cuando sirve la carpeta node_modules y especifica la ruta y el nombre de archivo exactos, su importación iluminada puede incluir otras importaciones que se frenan debido a cómo se especifican como resueltas por node.

Por lo tanto, es posible que deba usar algo como RollupJS, que puede distribuir los recursos de su aplicación con las importaciones adecuadas. Consulte https://rollupjs.org/guide/en/

Espero que esto ayude.

over 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda