Package Exports
- vue-snip
- vue-snip/dist/main.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vue-snip) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
vue-snip
Vue.js directive that clamps the content of a text element if it exceeds the specified number of lines.
Key features:
- two snipping approaches (CSS / JavaScript) picked on a per-element basis
- no need to specify line heights
- re-snipping on element resize and reactive data change
To get a hands-on experience try the Interactive Demo.
Installation
# install with npm
npm install vue-snip
# or with yarn
yarn add vue-snip
Vue 2
import Vue from 'vue'
import VueSnip from 'vue-snip'
import App from './App'
Vue.use(VueSnip)
new Vue({ render: h => h(App) }).$mount('#app')
Vue 3
import { createApp } from 'vue'
import VueSnip from 'vue-snip'
import App from './App'
createApp(App).use(VueSnip).mount('#app')
Usage
<!-- minimal example -->
<template>
<p v-snip> ... </p>
</template>
<!-- with options -->
<template>
<p v-snip="{ lines: 3 }"> ... </p>
</template>
<!-- with several options -->
<template>
<p v-snip="{ lines: 3, mode: 'js', midWord: false }"> ... </p>
</template>
<!-- with options and callback -->
<template>
<p v-snip="{ lines: 3, onSnipped }"> ... </p>
</template>
<script>
export default {
data () {
return {
hasEllipsis: false,
}
},
methods: {
onSnipped (newState) {
this.hasEllipsis = newState.hasEllipsis
}
}
}
</script>
How it works
The library uses js-snip under the hood. You can find more about the options and how snipping works in its documentation.
Change Log
All changes are documented in the change log.