Gedeelde modules in webextensies
Een gedeelde module is een mechanisme waardoor u met andere uitbreidingen kunt communiceren. Bijvoorbeeld, kan de Uitbreiding A een stuk van gegevens asynchroon laden en het ter beschikking stellen van Uitbreiding B via a belofte.
In JavaScript-implementaties worden alle gedeelde modules geïnstantieerd met behulp van de methode getSharedModule
die wordt geleverd door de variabele turbine
free.
Gedeelde modules worden opgenomen in tagbibliotheken, zelfs als ze nooit worden aangeroepen vanuit andere extensies. Als u de bibliotheekgrootte niet onnodig wilt vergroten, moet u voorzichtig zijn met wat u als gedeelde module beschikbaar maakt.
Gedeelde modules hebben geen weergavecomponent.
Wanneer u uw eigen tagextensie ontwikkelt, kunt u gedeelde modules definiëren die u wilt voorzien van deze extensie. U kunt bijvoorbeeld een module maken die een gebruikers-id asynchroon laadt en vervolgens de gebruikers-id deelt met een andere extensie via een promise:
var userIdPromise = new Promise(/* load user ID, then resolve promise */);
module.exports = userIdPromise;
In uitbreidingsmanifest, moet u een naam voor deze gedeelde module verstrekken. Als u de naam user-id-promise
geeft, heeft een andere extensie als volgt toegang tot deze gedeelde module:
var userIdPromise = turbine.getSharedModule('user-extension', 'user-id-promise');
Gedeelde modules kunnen om het even wat zijn u typisch van een module CommonJS (zoals functies, voorwerpen, koorden, aantallen, of booleans) zou kunnen uitvoeren.