vue-bind-once
Version:
A tiny, SSR-safe directive for binding random data to an element.
33 lines (29 loc) • 696 B
JavaScript
;
const scule = require('scule');
const BindOnceDirective = {
created: (el, binding) => {
for (const key in binding.value) {
const k = scule.kebabCase(key);
if (!el.hasAttribute(k)) {
el.setAttribute(k, binding.value[key]);
}
}
},
getSSRProps(binding) {
if (!binding.value)
return {};
return Object.fromEntries(
Object.entries(binding.value).map(([key, value]) => [
scule.kebabCase(key),
value
])
);
}
};
const BindOncePlugin = {
install(app) {
app.directive("bind-once", BindOnceDirective);
}
};
exports.BindOnceDirective = BindOnceDirective;
exports.BindOncePlugin = BindOncePlugin;