vue-remove-scope-directive
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

vue-remove-scope-directive

Vue directive that stops data-v-XXXXXX propagation in components with scoped styles. The primary use is to prevent leaking styles into slots.

Install

yarn add vue-remove-scope-directive

Use

Import in your entrypoint, such as main.ts:

import Vue from "vue"
import VueRemoveScopeDirective from "vue-remove-scope-directive"
 
Vue.directive("remove-scope", VueRemoveScopeDirective)

then use in Vue templates:

<!-- Layout.vue -->
<template>
    <div>
        <!-- This h1 is styled -->
        <h1>Welcome</h1>
        <main v-remove-scope>
            <!-- This h1 is not styled -->
            <h1>Willkommen!</h1>
            <!-- Neither are slot contents -->
            <slot />
        </main>
    </div>
</template>
 
<style scoped>
    h1 { color: red }
</style>

and child templates:

<!-- page.vue -->
<template>
    <Layout>
        <!-- Styles will not leak here -->
        <h1>Page</h1>
    </Layout>
</template>
 
<script lang="ts">
import { Component, Vue } from "vue-property-decorator"
 
import Layout from "@/Layout.vue"
 
@Component({
    components: { Layout },
})
export default class Page extends Vue {}
</script>

Modifiers

v-remove-scope.inner modifier keeps data-v-XXXXXX attribute on the actual node where the directive is applied (but removes from all inner nodes).

Consider the following example:

<template>
    <div class="page">
        <main v-remove-scope>
            <p>This will be unstyled.</p>
        </main>
        <footer v-remove-scope.inner>
            <p>
                This will be green: footer keeps scope attribute,
                but the paragraph is cleared.
            </p>
        </main>
    </div>
</template>
 
<style scoped>
    main { color: red }
    footer { color: green }
    p { color: blue }
</style>

Dependencies (0)

    Dev Dependencies (17)

    Package Sidebar

    Install

    npm i vue-remove-scope-directive

    Weekly Downloads

    1

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    8.72 kB

    Total Files

    7

    Last publish

    Collaborators

    • ilyasemenov