Skip to content
This repository was archived by the owner on Oct 5, 2022. It is now read-only.

rawilk/vue-context

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6723ccd · Oct 4, 2022
Sep 8, 2020
Nov 14, 2019
Aug 3, 2020
Jan 22, 2021
Oct 4, 2022
Aug 3, 2020
Nov 14, 2019
May 19, 2019
Nov 14, 2019
Aug 30, 2020
Aug 3, 2020
May 30, 2018
May 19, 2019
May 26, 2018
Jan 22, 2021
Aug 3, 2020
Aug 3, 2020

Repository files navigation

Attention:

I no longer have the ability or interest in maintaining this package since I am not using Vue in any of my projects anymore, so I am abandoning vue-context. If your project depends on vue-context, please feel free to fork and maintain the package yourself, or use an alternative context menu package.

vue-context

npm version npm downloads GitHub issues GitHub stars VueJS version

vue-context provides a simple yet flexible context menu for Vue. It is styled for the standard <ul> tag, but any menu template can be used. The menu is lightweight with its only dependency being vue-clickaway. The menu has some basic styles applied to it, but they can be easily overridden by your own styles.

The menu disappears when you expect by utilizing vue-clickaway and it also optionally disappears when clicked on.

Screenshot

Getting Started

The following instructions will help you get the vue-context menu up and running on your project.

Installation

Using npm:

npm i vue-context

Basic Usage

Import the component and use it in your app.

import Vue from 'vue';
import VueContext from 'vue-context';

new Vue({
    components: {
        VueContext
    },
    
    methods: {
        onClick (text) {
            alert(`You clicked ${text}!`);
        }
    }
}).$mount('#app');

Next add an element to the page that will trigger the context menu to appear, and also add the context menu to the page.

<div id="app">

    <div>
        <p @contextmenu.prevent="$refs.menu.open">
            Right click on me
        </p>    
    </div>
    
    <vue-context ref="menu">
        <li>
            <a href="#" @click.prevent="onClick($event.target.innerText)">Option 1</a>
        </li>
        <li>
            <a href="#" @click.prevent="onClick($event.target.innerText)">Option 2</a>
        </li>
    </vue-context>
    
</div>

Notice: As of version 4.1.0, the menu styles are not automatically included by default anymore. You will need to manually import them now in your own stylesheets.

@import '~vue-context/dist/css/vue-context.css';

// Or
@import '~vue-context/src/sass/vue-context';

Documentation

For full documentation, go here: https://randallwilk.dev/docs/vue-context.

If you would like to contribute to the documentation, you can edit the docs found here: https://github.com/rawilk/vue-context/tree/master/docs

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Alternatives

See awesome-vue for other alternatives.

License

vue-context uses the MIT License (MIT). Please see the license file for more information.