定制 impulsephp/js 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

impulsephp/js

最新稳定版本:v1.0.0-beta

Composer 安装命令:

composer require impulsephp/js

包简介

JS engine for ImpulsePHP components

README 文档

README

impulsephp/js est le moteur JavaScript officiel d’ImpulsePHP. Il apporte le comportement dynamique côté navigateur aux composants rendus par le serveur, sans imposer de framework front-end externe.

Ce que fait le package

  • intercepte les actions déclarées avec data-action-* ;
  • déclenche des mises à jour partielles en AJAX ;
  • expose une API d’événements globale via window.Impulse ;
  • synchronise le localStorage avec le backend ;
  • fournit des briques prêtes à l’emploi pour les interactions, la recherche instantanée et les toasts ;
  • gère une navigation client compatible avec les pages ImpulsePHP.

Prérequis

  • Node.js et npm ;
  • une application ImpulsePHP capable de servir le bundle généré.

Installation

Depuis le dossier js/ :

npm install

Build et développement

npm run build

Pour un développement en surveillance continue :

npm run watch

Exemple d’intégration

Incluez le bundle généré dans votre layout principal :

<script src="/assets/impulses/dist/impulse.js" type="module"></script>

Une fois chargé, le script initialise automatiquement le moteur, branche les événements, active la synchronisation du localStorage et expose window.Impulse.

Exemple d’usage côté navigateur :

window.Impulse.on('cart.updated', (payload) => {
  console.log('Panier mis à jour', payload);
});

window.Impulse.emit('cart.updated', { count: 3 });

API JavaScript

L’objet global window.Impulse expose notamment :

  • emit(event, payload, options?)
  • updateComponent(...)
  • on(event, callback)
  • off(event, callback)

Synchronisation du localStorage

Le moteur déclenche un événement impulse-localstorage à chaque modification observée du localStorage, y compris lorsqu’elle provient d’un autre onglet.

window.addEventListener('impulse-localstorage', (event) => {
  const { key, value } = event.detail;
  console.log('Changement localStorage :', key, value);
});

Documentation complémentaire

Des guides détaillés sont disponibles dans docs/ :

  • docs/router.md
  • docs/events.md
  • docs/localStorage.md
  • docs/interactions.md
  • docs/translation.md
  • docs/livesearch.md
  • docs/charactercounter.md

DevTools expérimentaux

Un serveur léger de développement est fourni dans devtools/server.js.

node devtools/server.js

Chargez ensuite le bundle de DevTools après le bundle principal :

<script src="/assets/impulses/dist/impulse.js" type="module"></script>
<script src="/assets/impulses/dist/impulse.devtools.js" type="module"></script>

L’interface est prévue pour être consultée sur http://localhost:1337.

Tests

npm test

Licence

MIT

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: TypeScript

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固