# Namespacing
# Deep Namespacing
If the Plugin Option enableDeepNamespacing
is true
(default),
Vue Hubble will automatically namespace all selectors in a given component by using
it's own and it's ancestral component namespaces. Deep namespacing recurses
up the component tree, ignoring missing or empty namespace values,
to create a selector prefixed by joined(--
delimiter)
ancestral namespaces.
# Generated Selector Naming Convention
{parent namespace}--{child namespace}--{directive hubble selector}
# Example
<!-- Form Component (child) -->
<template>
<div v-hubble="'attribute-selector'"></div>
</template>
<script>
export default {
hubble: {
namespace: 'form'
}
};
</script>
<!-- Login Component (parent) -->
<template>
<form />
</template>
<script>
export default {
components: {
Form
},
hubble: {
namespace: 'login'
}
/**
* Or shorthand...
* hubble: 'login'
**/
};
</script>
<div vue-hubble-selector="[vue-hubble][login--form--attribute-selector]" vue-hubble login--form--attribute-selector></div>
# Shallow Namespacing
If the Plugin Option enableDeepNamespacing
is false
,
Vue Hubble will automatically namespace all selectors in a given
component by using only it's own component namespace.
# Example
<!-- Form Component (child) -->
<template>
<div v-hubble="'attribute-selector'"></div>
</template>
<script>
export default {
hubble: {
namespace: 'form'
}
};
</script>
<!-- Login Component (parent) -->
<template>
<form />
</template>
<script>
export default {
components: {
Form
},
hubble: {
namespace: 'login'
}
/**
* Or shorthand...
* hubble: 'login'
**/
};
</script>
<div vue-hubble-selector="[vue-hubble][form--attribute-selector]" vue-hubble form--attribute-selector></div>