美文网首页
Vue设置自定义插件

Vue设置自定义插件

作者: 郭海杰 | 来源:发表于2019-12-09 11:46 被阅读0次

    首先要新建插件目录,新建插件文件
    在我这里是放在 src 的目录下,新建了一message.js文件

    目录如图所示:


    image.png

    编辑message.js插件文件:

    export default {
        install(Vue, options) {
            //设置属性和方法
            const ShowMessage = (res) => {
            console.log("设置啦自定义插件方法:"+res)
            }
            const content = {
                count : 1,
                str:"自定义插件的属性",
                type:"string",
            }
            //添加全局混入
            Vue.mixin({
                mounted(){
                    console.log("这里设置全局混入,这会在每个组件的mounted生命周期里面")
                }
            })
    
            //添加全局指令
            Vue.directive('bg',{
                inserted:function(e){
                    e.style.background="red"
                }
            })
    
    //把新建的方法和属性绑定到全局
       Vue.ShowMessage = Vue.prototype.$ShowMessage = ShowMessage
       Vue.content = Vue.prototype.$content = content
        }
    }
    

    在main.js里面引入,然后use()方法即可

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'
    import store from './store/index.js'
    //先import引入
    import message from '../src/plugins/message'
    //然后使用use()方法
    Vue.use(message)
    new Vue({
      store,
      router,
      render: h => h(App),
    }).$mount('#app')
    
    

    在组件中使用

    <template>
      <div class="wrap">
      //使用v-bg指令,检测效果
        <div v-bg>自定义指令设置背景颜色</div>
        <button @click="getplugin">使用自定义插件</button>
       
      </div>
    </template>
    <script>
    export default {
      name: "index",
      components: {},
      props: {},
      data() {
        return {};
      },
      watch: {},
      computed: {},
      methods: {
    //设置getplugin方法
        getplugin(){
        console.log(this.$content)  
        console.log(this.$ShowMessage('ok'))
        },
      }
    

    结果如图所示


    image.png

    相关文章

      网友评论

          本文标题:Vue设置自定义插件

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