Mutation service
The mutation service can be used to observe DOM mutations on a component with the MutationObserver API.
Usage
js
import { useMutation } from '@studiometa/js-toolkit';
const { add, remove } = useMutation();
// Add a callback
add('custom-id', ({ mutations }) => {
console.log('Some attribute has changed!');
});
// Remove the callback
remove('custom-id');
Parameters
target
- Type:
Node
The target element to observe, defaults to document.documentElement
.
Example
Observe any attribute mutation on the <body>
element:
js
const service = useMutation(document.body);
options
- Type:
MutationObserverInit
Options for the mutation observer, defaults to { attributes: true }
only.
Example
Observe everything on the given element:
js
const element = document.querySelector('#element');
const service = useMutation(element, {
attributes: true,
childList: true,
subtree: true,
});
Props
mutations
- Type:
MutationRecord[]
The list of MutationRecord
that triggered the callback.