前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue自定义弹窗组件(二)发包测试

Vue自定义弹窗组件(二)发包测试

作者头像
RtyXmd
发布2018-08-30 14:41:03
1.2K0
发布2018-08-30 14:41:03
举报
文章被收录于专栏:前端vue

参考 参考

新建一个vue项目并运行
代码语言:javascript
复制
vue init webpack rty-prompt-dialog  //新建一个vue脚手架空项目
npm install 
npm run dev
删除不必要代码(可选)写一个按钮方法
代码语言:javascript
复制
<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <button @click="hintPress">hint</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'Vue prompt-dialog!'
    }
  },
  methods: {
    hintPress() {
      this.$hint('hello Vue!')
    }
  },
}
</script>

修改helloword

模拟已发包组件

在node_modules中新建rty-prompt-dialog文件(模拟已发布包,最后会提交发布)

目录结构

目录结构

package.json文件可先不建

main.vue
代码语言:javascript
复制
<template>
  <div class="prompt_hint" v-if="isShow">
    {{message}}
  </div>
</template>

<script type="text/javascript">
  export default {
    name: 'prompt-hint',
    data () {
      return {
        message: '',
        time: 2000,
        isShow: true
      }
    },
    mounted () {
      this.close()
    },
    methods: {
      close () {
        var this_ = this
        window.setTimeout(function() {
          this_.isShow = false
        }, this.time);
      }
    }
  }
</script>

<style type="text/css">
  .prompt_hint{
    position: fixed;
    padding: 10px 20px;
    color: #fff;
    background: #5F6161;
    border-radius: 4px;
    top:50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100
  }
</style>
hint/index.js
代码语言:javascript
复制
import Vue from 'vue'
import Hint from './src/main.vue'

Hint.installHint = function(options) {
  if (options === undefined || options === null) {
    options = {
      message: ''
    }
  } else if (typeof options === 'string' || typeof options === 'number') {
    options = {
      message: options
    }
  }
  var hint = Vue.extend(Hint)

  var component = new hint({
    data: options
  }).$mount()
  document.querySelector('body').appendChild(component.$el)
}

export default Hint
rty-prompt-dialog/index.js
代码语言:javascript
复制
import promptHint from './packages/hint/index.js'

const install = function(Vue) {
  Vue.component(promptHint.name, promptHint)
  Vue.prototype.$hint = promptHint.installHint
}
export default install
引入临时包main.js
代码语言:javascript
复制
import Prompt from '../node_modules/rty-prompt-dialog/index.js'
Vue.use(Prompt)

测试成功

测试成功--发正式包引入
代码语言:javascript
复制
npm init 
npm publish
查看已发布的包

发布成功

正确的引入main.js
代码语言:javascript
复制
import Prompt from 'rty-prompt-dialog'
使用
代码语言:javascript
复制
this.$hint('hello Vue!')
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.06.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新建一个vue项目并运行
  • 删除不必要代码(可选)写一个按钮方法
  • 模拟已发包组件
    • 目录结构
      • main.vue
        • hint/index.js
          • rty-prompt-dialog/index.js
          • 引入临时包main.js
          • 测试成功--发正式包引入
            • 查看已发布的包
              • 正确的引入main.js
                • 使用
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档