插件

作者: 欢欣的膜笛 | 来源:发表于2020-12-18 18:06 被阅读0次

插件的定义和使用

  • 插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种:

    1. 添加全局方法或者 property。如 vue-custom-element
    2. 添加全局资源:指令/过滤器/过渡等。如 vue-touch
    3. 通过全局混入来添加一些组件选项。如 vue-router
    4. 添加全局实例方法,通过把它们添加到 config.globalProperties 上实现
    5. 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router
  • 使用插件

import { createApp } from 'vue'
import Root from './App.vue'
import i18nPlugin from './plugins/i18n'

const app = createApp(Root)
const i18nStrings = {
  greetings: {
    hi: 'Hallo!'
  }
}

app.use(i18nPlugin, i18nStrings)
app.mount('#app')
  • 开发插件
const myPlugin = {
        install(app, options) {
            app.provide('name', '李四')
            app.directive('focus', (el, bind) => {
                el.focus()
            })
            app.mixin({
                created() {
                    // 执行两次
                    console.log('I am mixin');
                }
            })
            app.config.globalProperties.$sayHello = 'hello world'
        }
    }

    const app = Vue.createApp({
        template: `<my-title />`
    })

    app.component('my-title', {
        inject: [ 'name' ],
        mounted() {
            console.log(this.$sayHello)
        },
        template: `<div> {{ name }} <input v-focus /></div>`
    })

    app.use(myPlugin, { name: '张三' })

    app.mount('#root')

数据校验插件开发实例

const validatorPlugin = (app, options) => {
        app.mixin({
            created() {
                for (const key in this.$options.rules) {
                    if (this.$options.rules.hasOwnProperty(key)) {
                        const item = this.$options.rules[key]
                        this.$watch(key, value => !item.validata(value) && console.log(item.message))
                    }
                }
            }
        })
    }

    const app = Vue.createApp({
        data() {
            return {
                name: '张三',
                age: 12,
            }
        },
        template: `
            <div>name: <input v-model="name" /></div>
            <div>age: <input type="number" v-model="age" /></div>
        `,
        rules: {
            name: {
                validata: name => name && name.length >= 4,
                message: 'name too short',
            },
            age: {
                validata: age => age >= 16,
                message: 'too young, to simple',
            }
        },
    })

相关文章

  • React配置过程中用到的插件汇总

    ●react插件●react-dom插件●react-router插件●react-redux插件●babel插件...

  • iOS项目实战02

    修改插件:查找插件 -> 插件路径(不能记) -> Xcode插件开发 -> 查看插件代码 -> 搜索instal...

  • 5.文档 - gitbook - 插件

    参考 官方插件 重点参考 GitBook 插件 常用插件 配置插件 到 官方插件 上找合适的插件 在配置文件中安装...

  • FCPX系列的插件怎么安装导入?Final cut pro x插

    fcpx插件怎么安装? Fcpx插件怎么解压安装?fcpx插件怎么卸载?fcpx插件怎么添加?fcpx lut插件...

  • Cordova 插件更新

    查看项目插件列表 移除插件 添加插件

  • IDEA破解

    配置插件 配置仓库 下载插件 使用插件

  • Cordova 本地插件

    1 安装插件环境 2 创建插件 例子 添加配置 进入插件文件夹下初始化插件 插件使用

  • Webpack入门之plugins篇

    入门篇主要先学学插件的使用,不涉及自定义插件。 首先 插件分为:内置插件和外部插件。 内置插件例如BannerPl...

  • Gradle中插件的使用

    目录 插件的类型 插件的类型分为:1.脚本插件2.二进制插件 插件的使用 1.脚本插件的使用 脚本插件的使用方法如...

  • 更多关于CocoaScript

    目录 入门插件基础您的第一个插件开发环境调试Action API发布插件 高级插件捆绑插件,脚本和命令插件位置更多...

网友评论

      本文标题:插件

      本文链接:https://www.haomeiwen.com/subject/nnrfnktx.html