vue.js注册引用全局消息组件

Posted kulaai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue.js注册引用全局消息组件相关的知识,希望对你有一定的参考价值。

1 注册

在 src/components 下新建 index.js 文件,复制贴入以下代码:

注册全局组件需要使用 Vue.component,第一个参数 ‘Message‘ 是组件名称,第二个参数 Message 是一个对象或者函数,我们这里是一个对象。(vue-cli模板下)

import Message from ‘./Message‘

Vue.component(‘Message‘, Message)

 

2 引用

打开 src/main.js 文件,引入 ./components

import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import ‘./directives‘
import ‘./components‘

我们通过引入 ./components/index.js,执行其中代码,就可以使用其内部注册的所有组件了。

 

3 使用

在目标组件的 data 中添加了 3 个消息组件相关的属性 msgmsgType 和 msgShow

<script>
import createCaptcha from ‘@/utils/createCaptcha‘
import ls from ‘@/utils/localStorage‘

export default {
  name: ‘Register‘,
  data() {
    return {
      captchaTpl: ‘‘, // 验证码模板
      username: ‘‘, // 用户名
      password: ‘‘, // 密码
      cpassword: ‘‘, // 确认密码
      captcha: ‘‘, // 验证码
      msg: ‘‘, // 消息
      msgType: ‘‘, // 消息类型
      msgShow: false // 是否显示消息,默认不显示
    }
  },

 

然后在 methods 中添加了一个 showMsg 的方法用来改变当前的消息;

技术分享图片
  methods: {
    login(user) {
          ls.setItem(‘user‘, user)
          this.showMsg(‘注册成功‘, ‘success‘)
    },
    showMsg(msg, type = ‘warning‘) {
        this.msg = msg
        this.msgType = type
        this.msgShow = false

        this.$nextTick(() => {
            this.msgShow = true
        })
    }
  }
}
</script>
View Code

 

以上是关于vue.js注册引用全局消息组件的主要内容,如果未能解决你的问题,请参考以下文章

Vue组件之全局组件与局部组件

vue js 可以全局注册所有组件吗?

vue.js基础知识篇:组件详解

Vue.js学习之组件

javascript 在Vue.js中全局注册组件

如何在 Storybook 中注册全局 Vue 组件?