1595665620
Generate a JSON documentation for a Vue file component
npm install --save @vuedoc/parser
@
symbol like @author Jon Snow
@param
and @return
tags)name | description |
---|---|
filename | The filename to parse. Required unless filecontent is passed |
filecontent | The file content to parse. Required unless filename is passed |
encoding | The file encoding. Default is 'utf8' |
features | The component features to parse and extract. |
Default features: ['name', 'description', 'keywords', 'slots', 'model', 'props', 'data', 'computed', 'events', 'methods'] |
|
loaders | Use this option to define custom loaders for specific languages |
defaultMethodVisibility | Can be set to 'public' (default), 'protected' , or 'private' |
ignoredVisibilities | List of ignored visibilities. Default: ['protected', 'private'] |
stringify | Set to true to disable parsing of literal values and stringify literal values. Default: false |
Note for stringify
option
By default Vuedoc Parser parses literal values defined in the source code. This means:
const binVar = 0b111110111 // will be parsed as binVar = 503
const numVar = 1_000_000_000 // will be parsed as numVar = 1000000000
To preserve literal values, set the stringify
option to true
.
See test/fixtures/checkbox.vue for an Vue Component decoration example.
const Vuedoc = require('@vuedoc/parser')
const options = {
filename: 'test/fixtures/checkbox.vue'
}
Vuedoc.parse(options)
.then((component) => console.log(component))
.catch((err) => console.error(err))
This will print this JSON output:
{
"name": "checkbox" // The component name
"description": "A simple checkbox component" // The component description
// Attached component keywords
"keywords": [
{ "name": "author", "description": "Sébastien" }
],
"props": [ ... ],
"data": [ ... ],
"computed": [ ... ],
"slots": [ ... ],
"events": [ ... ],
"methods": [ ... ]
}
See test/fixtures/checkbox-result.json for the complete result.
By default, Vuedoc Parser use the component’s filename to generate the component name.
To set a custom name, use the name
field like:
export default {
name: 'my-checkbox'
}
You can also use the @name
keyword to set the component name:
/**
* @name my-checkbox
*/
export default {
// ...
}
To add a component description, just add a comment before the export default
statement like:
/**
* Component description
*/
export default {
...
}
To document props, data or computed properties, use comments like:
export default {
props: {
/**
* Component ID
*/
id: {
type: String,
required: true
}
},
data () {
return {
/**
* Indicates that the control is checked
*/
isChecked: false
}
},
computed: {
/**
* Indicates that the control is selected
*/
selected () {
return this.isChecked
}
}
}
Vuedoc Parser will automatically extract required
and default
values for properties and computed properties dependencies. It will also detect type for each defined data field.
You can set a custom default value of an prop by using the keyword @default
.
export default {
props: {
/**
* Custom default value
* @default { anything: 'custom default value' }
*/
custom: {
type: String,
default: () => {
// complex code
return anythingExpression()
}
}
}
}
To document a v-model
prop, a proper way is to use the Vue’s model field if you use Vue +2.2.0.
export default {
/**
* Use `v-model` to define a reactive value of the checkbox
*/
model: {
prop: 'checked',
event: 'change'
}
}
You can also use the @model
keyword on a prop if you use an old Vue version:
export default {
props: {
/**
* The checkbox model
* @model
*/
model: {
type: Array,
required: true
}
}
}
To document Vue array string props, just attach a Vuedoc comment to each prop:
export default {
props: [
/**
* Checkbox ID
*/
'id',
/**
* The checkbox model
*/
'value'
]
}
By default, all extracted things have the public
visibility. To change this for one entry, add @protected
or @private
keyword.
export default {
data: () => ({
/**
* This will be ignored on parsing
* @private
*/
isChecked: false
})
}
To document methods or events, just add comments before:
export default {
methods: {
/**
* Submit form
*/
check () {
/**
* Emit the `input` event on submit
*/
this.$emit('input', true)
}
}
}
Vuedoc Parser automatically extracts events from component hooks:
export default {
created () {
/**
* Emit on Vue `created` hook
*/
this.$emit('created', true)
}
}
Use the JSDoc @param and @return tags to define parameters and returning type:
export default {
methods: {
/**
* Submit form
*
* @param {object} data - Data to submit
* @return {boolean} true on success; otherwise, false
*/
submit (data) {
/**
* Emit the `loading` event on submit
*
* @arg {boolean} status - The loading status
*/
this.$emit('loading', true)
return true
}
}
}
Note:
@arg
is an alias of@param
The parser is also able to extract events and slots from template:
<template>
<div>
<!-- Emit the `input` event on submit -->
<button @click="$emit('input', $event)">Submit</button>
<!-- Default slot -->
<slot></slot>
<!-- Use this slot to set the checkbox label -->
<slot name="label">Unnamed checkbox</slot>
<!--
Slot with keywords and
multiline description
@prop {User} user - The current user
@prop {UserProfile} profile - The current user's profile
-->
<slot name="header" v-bind:user="user" v-bind:profile="profile"/>
</div>
</template>
Usage with non primitive name
You can use special keywords @method
and @event
for non primitive name:
<script>
const METHODS = {
CLOSE: 'closeModal'
}
const EVENTS = {
CLOSE: 'close'
}
export default {
methods: {
/**
* Close modal
* @method closeModal
*/
[METHODS.CLOSE] () {
/**
* Emit the `close` event on click
* @event close
*/
this.$emit(EVENTS.CLOSE, true)
}
}
}
</script>
To annotate slots defined in Render Functions, just attach the keyword @slot
to the component definition:
/**
* A functional component with slots defined in render function
* @slot title - A title slot
* @slot default - A default slot
*/
export default {
functional: true,
render(h, { slots }) {
return h('div', [
h('h1', slots().title),
h('p', slots().default)
])
}
}
You can also use the keyword @slot
to define dynamic slots on template:
<template>
<div>
<template v-for="name in ['title', 'default']">
<!--
@slot title - A title slot
@slot default - A default slot
-->
<slot :name="name" :slot="name"></slot>
</template>
</div>
</template>
You can attach keywords to any comment and then extract them using the parser.
Usage
/**
* Component description
*
* @author Arya Stark
* @license MIT
*/
export default { ... }
Note that the description must alway appear before keywords definition
Parsing result:
{
"name": "my-checkbox",
"description": "Component description",
"keywords": [
{
"name": "author",
"description": "Arya Stark"
},
{
"name": "license",
"description": "MIT"
}
]
}
Since Vuedoc Parser don’t perform I/O operations, it completely ignores the mixins
property.
To parse a mixin, you need to parse its file as a standalone component and then merge the parsing result with the result of the initial component:
const Vuedoc = require('@vuedoc/parser')
const merge = require('deepmerge')
const parsers = [
Vuedoc.parse({ filename: 'mixinFile.js' })
Vuedoc.parse({ filename: 'componentUsingMixin.vue' })
]
Promise.all(parsers)
.then(merge.all)
.then((mergedParsingResult) => console.log(mergedParsingResult))
.catch((err) => console.error(err))
Using the keyword @mixin
You can use the special keyword @mixin
to force parsing named exported component:
import Vue from 'vue';
/**
* @mixin
*/
export const InputMixin = Vue.extend({
props: {
id: String,
Value: [ Boolean, Number, String ]
}
});
options.features
lets you select which Vue Features you want to parse and extract.
The default value is defined by Vuedoc.Parser.SUPPORTED_FEATURES
array.
Usage
Only parse name
, props
, computed properties
, slots
and events
:
const Vuedoc = require('@vuedoc/parser')
const options = {
filename: 'test/fixtures/checkbox.vue',
features: [ 'name', 'props', 'computed', 'slots', 'events' ]
}
Vuedoc.parse(options)
.then((component) => Object.keys(component))
.then((keys) => console.log(keys))
// => [ 'name', 'props', 'computed', 'slots', 'events' ]
Parse all features except data
:
const Vuedoc = require('@vuedoc/parser')
const options = {
filename: 'test/fixtures/checkbox.vue',
features: Vuedoc.Parser.SUPPORTED_FEATURES.filter((feature) => feature !== 'data')
}
Vuedoc.parse(options)
.then((component) => Object.keys(component))
.then((keys) => console.log(keys))
// => [ 'name', 'description', 'keywords', 'model',
// 'props', 'computed', 'events', 'methods', 'slots' ]
abstract class Loader {
public static extend(loaderName: string, loaderClass: Loader);
public abstract load(source: string): Promise<void>;
public emitTemplate(source: string): Promise<void>;
public emitScript(source: string): Promise<void>;
public emitErrors(errors: Array<string>): Promise<void>;
public pipe(loaderName: string, source: string): Promise<void>;
}
Language | Load by default? | Package |
---|---|---|
HTML | Yes | @vuedoc/parser/loader/html |
JavaScript | Yes | @vuedoc/parser/loader/javascript |
Pug | No | @vuedoc/parser/loader/pug |
TypeScript | No | @vuedoc/parser/loader/typescript |
Vue | Yes | @vuedoc/parser/loader/vue |
The Vuedoc Parser package contains a loader for TypeScript. To use it, you need to:
typescript
and @types/node
dependencies according the official documentation@vuedoc/parser/loader/typescript
const Vuedoc = require('@vuedoc/parser')
const TypeScriptLoader = require('@vuedoc/parser/loader/typescript')
const options = {
filename: 'DatePicker.ts',
loaders: [
/**
* Register TypeScriptLoader
* Note that the name of the loader is either the extension
* of the file or the value of the attribute `lang`
*/
Vuedoc.Loader.extend('ts', TypeScriptLoader)
]
}
Vuedoc.parse(options).then((component) => {
console.log(component)
})
The example below uses the abstract Vuedoc.Loader
class to create a specialized class to handle a template with the CoffeeScript language. It uses the Pug language for templating:
const Vuedoc = require('@vuedoc/parser')
const PugLoader = require('@vuedoc/parser/loader/pug')
const CoffeeScript = require('coffeescript')
class CoffeeScriptLoader extends Vuedoc.Loader {
load (source) {
const outputText = CoffeeScript.compile(source);
// don't forget the return here
return this.emitScript(outputText);
}
}
const options = {
filecontent: `
<template lang="pug">
div.page
h1 Vuedoc Parser with Pug
// Use this slot to define a subtitle
slot(name='subtitle')
</template>
<script lang="coffee">
###
# Description of MyInput component
###
export default
name: 'MyInput'
</script>
`,
loaders: [
/**
* Register CoffeeScriptLoader
* Note that the name of the loader is either the extension
* of the file or the value of the attribute `lang`
*/
Vuedoc.Loader.extend('coffee', CoffeeScriptLoader),
// Register the Pug loader
Vuedoc.Loader.extend('pug', PugLoader)
]
}
Vuedoc.parse(options).then((component) => {
console.log(component)
})
Output
{
name: 'MyInput',
description: 'Description of MyInput component',
slots: [
{
kind: 'slot',
visibility: 'public',
description: 'Use this slot to define a subtitle',
keywords: [],
name: 'subtitle',
props: []
}
],
// ...
}
type ParsingOutput = {
name: string; // Component name
description: string; // Component description
inheritAttrs: boolean;
keywords: Keyword[]; // Attached component keywords
model?: ModelEntry; // Component model
slots: SlotEntry[]; // Component slots
props: PropEntry[]; // Component props
data: DataEntry[]; // Component data
computed: ComputedEntry[]; // Computed properties
events: EventEntry[]; // Events
methods: MethodEntry[]; // Component methods
errors: string[]; // Syntax and parsing errors
};
enum NativeTypeEnum {
string,
number,
bigint,
boolean,
bigint,
any, // for an explicit `null` or `undefined` values
object, // for an array or an object
CallExpression // for a value like `new Date()`
};
type Keyword = {
name: string;
description: string;
}
interface Entry {
kind: 'computed' | 'data' | 'event' | 'method' | 'model' | 'prop' | 'slot';
visibility: 'public' | 'protected' | 'private';
description: string;
keywords: Keyword[];
}
interface ModelEntry extends Entry {
kind: 'model';
prop: string;
event: string;
}
interface SlotEntry extends Entry {
kind: 'slot';
name: string;
props: SlotProp[];
}
type SlotProp = {
name: string;
type: string;
description: string;
};
interface ModelEntry extends Entry {
kind: 'model';
prop: string;
event: string;
}
interface PropEntry extends Entry {
kind: 'prop';
name: string; // v-model when the @model keyword is attached
type: string | string[]; // ex. Array, Object, String, [String, Number]
nativeType: NativeTypeEnum;
default?: string;
required: boolean = false;
describeModel: boolean; // true when the @model keyword is attached
}
interface DataEntry extends Entry {
kind: 'data';
name: string;
type: NativeTypeEnum;
initial?: string;
}
interface ComputedEntry extends Entry {
kind: 'computed';
name: string;
dependencies: string[]; // list of dependencies of the computed property
}
interface EventEntry extends Entry {
kind: 'event';
name: string;
arguments: EventArgument[];
}
type EventArgument = {
name: string;
description: string;
type: string;
};
interface MethodEntry extends Entry {
kind: 'method';
name: string;
params: MethodParam[];
return: MethodReturn;
}
type MethodParam = {
type: string;
name: string;
description: string;
defaultValue?: string;
}
type MethodReturn = {
type: string = 'void';
description: string;
};
Contributions to Vuedoc Parser are welcome. Here is how you can contribute:
dev
branch: git checkout dev -b feature/my-awesome-feature
Given a version number MAJOR.MINOR.PATCH
, increment the:
MAJOR
version when you make incompatible API changes,MINOR
version when you add functionality in a backwards-compatible manner, andPATCH
version when you make backwards-compatible bug fixes.Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH
format.
See SemVer.org for more details.
Author: vuedoc
GitHub: https://github.com/vuedoc/parser
#vuejs #javascript #vue-js #vue
1600583123
In this article, we are going to list out the most popular websites using Vue JS as their frontend framework.
Vue JS is one of those elite progressive JavaScript frameworks that has huge demand in the web development industry. Many popular websites are developed using Vue in their frontend development because of its imperative features.
This framework was created by Evan You and still it is maintained by his private team members. Vue is of course an open-source framework which is based on MVVM concept (Model-view view-Model) and used extensively in building sublime user-interfaces and also considered a prime choice for developing single-page heavy applications.
Released in February 2014, Vue JS has gained 64,828 stars on Github, making it very popular in recent times.
Evan used Angular JS on many operations while working for Google and integrated many features in Vue to cover the flaws of Angular.
“I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight." - Evan You
#vuejs #vue #vue-with-laravel #vue-top-story #vue-3 #build-vue-frontend #vue-in-laravel #vue.js
1625637060
In this video, we work with JSONs, which are a common data format for most web services (i.e. APIs). Thank you for watching and happy coding!
Need some new tech gadgets or a new charger? Buy from my Amazon Storefront https://www.amazon.com/shop/blondiebytes
What is an API?
https://youtu.be/T74OdSCBJfw
JSON Google Extension
https://chrome.google.com/webstore/detail/json-formatter/bcjindcccaagfpapjjmafapmmgkkhgoa?hl=en
Endpoint Example
http://maps.googleapis.com/maps/api/geocode/json?address=13+East+60th+Street+New+York,+NY
Check out my courses on LinkedIn Learning!
REFERRAL CODE: https://linkedin-learning.pxf.io/blondiebytes
https://www.linkedin.com/learning/instructors/kathryn-hodge
Support me on Patreon!
https://www.patreon.com/blondiebytes
Check out my Python Basics course on Highbrow!
https://gohighbrow.com/portfolio/python-basics/
Check out behind-the-scenes and more tech tips on my Instagram!
https://instagram.com/blondiebytes/
Free HACKATHON MODE playlist:
https://open.spotify.com/user/12124758083/playlist/6cuse5033woPHT2wf9NdDa?si=VFe9mYuGSP6SUoj8JBYuwg
MY FAVORITE THINGS:
Stitch Fix Invite Code: https://www.stitchfix.com/referral/10013108?sod=w&som=c
FabFitFun Invite Code: http://xo.fff.me/h9-GH
Uber Invite Code: kathrynh1277ue
Postmates Invite Code: 7373F
SoulCycle Invite Code: https://www.soul-cycle.com/r/WY3DlxF0/
Rent The Runway: https://rtr.app.link/e/rfHlXRUZuO
Want to BINGE?? Check out these playlists…
Quick Code Tutorials: https://www.youtube.com/watch?v=4K4QhIAfGKY&index=1&list=PLcLMSci1ZoPu9ryGJvDDuunVMjwKhDpkB
Command Line: https://www.youtube.com/watch?v=Jm8-UFf8IMg&index=1&list=PLcLMSci1ZoPvbvAIn_tuSzMgF1c7VVJ6e
30 Days of Code: https://www.youtube.com/watch?v=K5WxmFfIWbo&index=2&list=PLcLMSci1ZoPs6jV0O3LBJwChjRon3lE1F
Intermediate Web Dev Tutorials: https://www.youtube.com/watch?v=LFa9fnQGb3g&index=1&list=PLcLMSci1ZoPubx8doMzttR2ROIl4uzQbK
GitHub | https://github.com/blondiebytes
Twitter | https://twitter.com/blondiebytes
LinkedIn | https://www.linkedin.com/in/blondiebytes
#jsons #json arrays #json objects #what is json #jsons tutorial #blondiebytes
1596804000
Generate a JSON documentation for a SFC Vue component.
npm install --save @vuedoc/parser
Sh
@
symbol like@author Jon Snow
[@param](http://usejsdoc.org/tags-param.html)
and[@return](http://usejsdoc.org/tags-returns.html)
tags)NAMEDESCRIPTIONfilenameThe filename to parse. Required unless filecontent
is passedfilecontentThe file content to parse. Required unless filename
is passedencodingThe file encoding. Default is 'utf8'
featuresThe component features to parse and extract.Default features: ['name', 'description', 'keywords', 'slots', 'model', 'props', 'data', 'computed', 'events', 'methods']
loadersUse this option to define custom loaders for specific languagesdefaultMethodVisibilityCan be set to 'public'
(default), 'protected'
, or 'private'
ignoredVisibilitiesList of ignored visibilities. Default: ['protected', 'private']
stringifySet to true
to disable parsing of literal values and stringify literal values. Default: false
Note for **stringify**
option
By default Vuedoc Parser parses literal values defined in the source code.
This means:
const binVar = 0b111110111 // will be parsed as binVar = 503
const numVar = 1_000_000_000 // will be parsed as numVar = 1000000000
Js
To preserve literal values, set the stringify
option to true
.
See test/fixtures/checkbox.vue
for an Vue Component decoration example.
const Vuedoc = require('@vuedoc/parser')
const options = {
filename: 'test/fixtures/checkbox.vue'
}
Vuedoc.parse(options)
.then((component) => console.log(component))
.catch((err) => console.error(err))
Js
This will print this JSON output:
{
"name": "checkbox" // The component name
"description": "A simple checkbox component" // The component description
// Attached component keywords
"keywords": [
{ "name": "author", "description": "Sébastien" }
],
"props": [ ... ],
"data": [ ... ],
"computed": [ ... ],
"slots": [ ... ],
"events": [ ... ],
"methods": [ ... ]
}
Js
See test/fixtures/checkbox-result.json for the complete result.
By default, Vuedoc Parser use the component’s filename to generate the
component name.
To set a custom name, use the name
field like:
export default {
name: 'my-checkbox'
}
Js
You can also use the @name
keyword to set the component name:
/**
* @name my-checkbox
*/
export default {
// ...
}
Js
To add a component description, just add a comment before the export default
statement like:
/**
* Component description
*/
export default {
...
}
Js
To document props, data or computed properties, use comments like:
export default {
props: {
/**
* Component ID
*/
id: {
type: String,
required: true
}
},
data () {
return {
/**
* Indicates that the control is checked
*/
isChecked: false
}
},
computed: {
/**
* Indicates that the control is selected
*/
selected () {
return this.isChecked
}
}
}
Js
Vuedoc Parser will automatically extract required
and default
values for
properties and computed properties dependencies. It will also detect type for
each defined data field.
You can set a custom default value of an prop by using the keyword @default
.
export default {
props: {
/**
* Custom default value
* @default { anything: 'custom default value' }
*/
custom: {
type: String,
default: () => {
// complex code
return anythingExpression()
}
}
}
}
Js
To document a v-model
prop, a proper way is to use the Vue’s
model field if you use Vue +2.2.0.
export default {
/**
* Use `v-model` to define a reactive value of the checkbox
*/
model: {
prop: 'checked',
event: 'change'
}
}
Js
You can also use the @model
keyword on a prop if you use an old Vue version:
export default {
props: {
/**
* The checkbox model
* @model
*/
model: {
type: Array,
required: true
}
}
}
Js
To document Vue array string props, just attach a Vuedoc comment to each prop:
export default {
props: [
/**
* Checkbox ID
*/
'id',
/**
* The checkbox model
*/
'value'
]
}
Js
By default, all extracted things have the public
visibility.
To change this for one entry, add @protected
or @private
keyword.
export default {
data: () => ({
/**
* This will be ignored on parsing
* @private
*/
isChecked: false
})
}
Js
To document methods or events, just add comments before:
export default {
methods: {
/**
* Submit form
*/
check () {
/**
* Emit the `input` event on submit
*/
this.$emit('input', true)
}
}
}
Js
Vuedoc Parser automatically extracts events from component hooks:
export default {
created () {
/**
* Emit on Vue `created` hook
*/
this.$emit('created', true)
}
}
Js
Use the JSDoc @param and
@return tags to define parameters and
returning type:
export default {
methods: {
/**
* Submit form
*
* @param {object} data - Data to submit
* @return {boolean} true on success; otherwise, false
*/
submit (data) {
/**
* Emit the `loading` event on submit
*
* @arg {boolean} status - The loading status
*/
this.$emit('loading', true)
return true
}
}
}
Js
Note:
@arg
is an alias of@param
The parser is also able to extract events and slots from template:
<template>
<div>
<!-- Emit the `input` event on submit -->
<button @click="$emit('input', $event)">Submit</button>
<!-- Default slot -->
<slot></slot>
<!-- Use this slot to set the checkbox label -->
<slot name="label">Unnamed checkbox</slot>
<!--
Slot with keywords and
multiline description
@prop {User} user - The current user
@prop {UserProfile} profile - The current user's profile
-->
<slot name="header" v-bind:user="user" v-bind:profile="profile"/>
</div>
</template>
#documentation #json
1578061020
Icons are the vital element of the user interface of the product enabling successful and effective interaction with it. In this article, I will collect 10 Vue icon component to bring more interactivity, better UI design to your Vue application.
A clean and simple Vue wrapper for SweetAlert’s fantastic status icons. This wrapper is intended for users who are interested in just the icons. For the standard SweetAlert modal with all of its bells and whistles, you should probably use Vue-SweetAlert 2
Demo: https://vue-sweetalert-icons.netlify.com/
Download: https://github.com/JorgenVatle/vue-sweetalert-icons/archive/master.zip
Create 2-state, SVG-powered animated icons.
Demo: https://codesandbox.io/s/6v20q76xwr
Download: https://github.com/kai-oswald/vue-svg-transition/archive/master.zip
Awesome SVG icon component for Vue.js, with built-in Font Awesome icons.
Demo: https://justineo.github.io/vue-awesome/demo/
Download: https://github.com/Justineo/vue-awesome/archive/master.zip
Transitioning Result Icon for Vue.js
A scalable result icon (SVG) that transitions the state change, that is the SVG shape change is transitioned as well as the color. Demonstration can be found here.
A transitioning (color and SVG) result icon (error or success) for Vue.
Demo: https://transitioning-result-icon.dexmo-hq.com/
Download: https://github.com/dexmo007/vue-transitioning-result-icon/archive/master.zip
Easily add Zondicon icons to your vue web project.
Demo: http://www.zondicons.com/icons.html
Download: https://github.com/TerryMooreII/vue-zondicons/archive/master.zip
Vicon is an simple iconfont componenet for vue.
iconfont
iconfont is a Vector Icon Management & Communication Platform made by Alimama MUX.
Download: https://github.com/Lt0/vicon/archive/master.zip
A tool to create svg icon components. (vue 2.x)
Demo: https://mmf-fe.github.io/vue-svgicon/v3/
Download: https://github.com/MMF-FE/vue-svgicon/archive/master.zip
This library is a collection of Vue single-file components to render Material Design Icons, sourced from the MaterialDesign project. It also includes some CSS that helps make the scaling of the icons a little easier.
Demo: https://gitlab.com/robcresswell/vue-material-design-icons
Download: https://gitlab.com/robcresswell/vue-material-design-icons/tree/master
Vue Icon Set Components from Ionic Team
Design Icons, sourced from the Ionicons project.
Demo: https://mazipan.github.io/vue-ionicons/
Download: https://github.com/mazipan/vue-ionicons/archive/master.zip
Dead easy, Google Material Icons for Vue.
This package’s aim is to get icons into your Vue.js project as quick as possible, at the cost of all the bells and whistles.
Demo: https://material.io/resources/icons/?style=baseline
Download: https://github.com/paulcollett/vue-ico/archive/master.zip
I hope you like them!
#vue #vue-icon #icon-component #vue-js #vue-app
1578472348
Vue highlight is often used to highlight text and syntax. Here are the 7 Vue highlight components I’ve collected.
Vue3 Snippets, This extension adds Vue3 Code Snippets into Visual Studio Code.
Vim syntax and indent plugin for vue files
Vue directive for highlight multiple istances of a word.
Beautiful code syntax highlighting as Vue.js component.
A dead simple code editor with syntax highlighting and line numbers. 7kb/gz
Features
A simple port from react-highlight-words
Vue component to highlight words within a larger body of text.
Vue component for highlight multiple istances of a word.
Thank for read!
#vue-highlight #vue #vue-highlight-component #highlight-vue