Mutation observer
Vue Bootstrap 5 Mutation observer
The mdbMutate
is a custom directive which detects updates of an element, using Mutation Observer API.
Note: Read the API tab to find all available options and advanced customization
Basic example
Import the directive from 'mdb-vue-ui-kit' and add mdbMutate
to the directives object. The directive uses Mutation Observer API - you can use the same options to configure the observer. You can pass separately options as modifiers and handler function as a value, or both as keys of and object. For Mutation Observer to work, one of childList, attributes, or characterData has to be set to true.
Edit text below:
Material Design for Bootstrap
Changes: {{counter}}
<template>
<p>Edit text below:</p>
<p class="border" contenteditable v-mdb-mutate="mutate">
Material Design for Bootstrap
</p>
<p>Changes: {{counter}}</p>
</template>
<script>
import { mdbMutate } from "mdb-vue-ui-kit";
import { ref } from "vue";
export default {
directives: {
mdbMutate
},
setup() {
const counter = ref(0);
const mutate = {
handler: () => { counter.value++ },
options: {
childList: true,
characterData: true,
subtree: true,
attributeFilter: ["value"],
attributeOldValue: false,
characterDataOldValue: true
},
};
return { counter, mutate }
}
};
</script>
<script setup lang="ts">
import { mdbMutate as vMdbMutate} from "mdb-vue-ui-kit";
import { ref } from "vue";
const counter = ref(0);
const mutate = {
handler: () => { counter.value++ },
options: {
childList: true,
characterData: true,
subtree: true,
attributeFilter: ["value"],
attributeOldValue: false,
characterDataOldValue: true
},
};
</script>
Mutation observer - API
Import
<script>
import {
mdbMutate
} from 'mdb-vue-ui-kit';
</script>