自己编写并发布一个Vue组件

自己编写并发布一个Vue组件

 

1. 几种开源协议的介绍

https://blog.csdn.net/techbirds_bao/article/details/8785413

 

2.开始编写组件

 新建plugin文件夹:

 

指定 组件、入口文件和package.json文件,

 

看一下各个文件内容:

1.package.json 是npm init生成的:

2.loading.vue 是编写的组件文件:

 

 

在loading.js中, 使用了

 

3.loading.js 是指定的入口文件:

 

import LoadingComponent from './loading.vue'
// 新建一个loading.js文件,引入我们的loading.vue文件

console.log(`==================================`)
console.log(`==================================`)

let $vm

export default {
install (Vue, options) {
if (!$vm) {
const LoadingPlugin = Vue.extend(LoadingComponent)
// 通过Vue.extend创建一个构造器LoadingPlugin

$vm = new LoadingPlugin({
el: document.createElement('div')
})

// 通过new LoadingPlugin新建一个vm实例 挂载到div元素上
document.body.appendChild($vm.$el)
// 通过document.appendChild将其插入到DOM节点中
}
// 创建了$vm实例后,我们可以访问该实例的属性和方法比如通过$vm.show就可以改变
// loading组件的show值来控制其显示隐藏
$vm.show = false

let loading = {
show (text) {
$vm.show = true
$vm.text = text
},
hide () {
$vm.show = false
}
}

if (!Vue.$loading) {
Vue.$loading = loading
}

// 最后我们通过Vue.mixin或者Vue.prototpye.$loading 来全局添加$loading事件
// 其又包含了show和hide两个方法,我们可以在页面中使用this.$loading.show()
// 来显示加载 使用this.$loading.hide()来关闭加载
Vue.mixin({
created () {
this.$loading = Vue.$loading;
}
})
}

}

 

如何发布到npm上:

1.npm login 

2.npm publish (根据官网文档在72小时内可以npm unpublish)

 

 

 

使用:

新建一个项目

npm install test__my__plugin

 

然后在main.js中 import a from 'test__my__plugin'

Vue.use(a)

 

然后this.$loading.show('my text')

posted @ 2018-10-12 19:35  hh9515  阅读(727)  评论(0编辑  收藏  举报