UNPKG

vue-bind-once

Version:

A tiny, SSR-safe directive for binding random data to an element.

30 lines (27 loc) 630 B
import { kebabCase } from 'scule'; const BindOnceDirective = { created: (el, binding) => { for (const key in binding.value) { const k = 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]) => [ kebabCase(key), value ]) ); } }; const BindOncePlugin = { install(app) { app.directive("bind-once", BindOnceDirective); } }; export { BindOnceDirective, BindOncePlugin };