IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 自定义vue组件 和 自定义vue组件npm包 -> 正文阅读

[JavaScript知识库]自定义vue组件 和 自定义vue组件npm包

自定义组件

 <div id="components-demo" style="margin-top:10px">
        <button-counter></button-counter>
 </div>
import Vue from 'vue';

Vue.component('button-counter',{
  template: '<button @click="count+=1">点击了{{count}}次</button>',
  data: function() {
    return {
      count: 0
    }
  }
})

new Vue({
  el: '#components-demo',
  data: {}
})

自定义组件的npm包

父子传值啥的都没问题

开发自定义组件

新建自定义组件vue项目,这里我们直接vue-cli4整上

vue create vue-settlement-component
npm run serve

开发自定义组件 VueSettlementComponents

<template>
  <div>
    请输入两个数:<input type="text" v-model="frist"> + <input type="text" v-model="second"> <button @click="plus">计算</button>
  </div>
</template>
<script>
export default {
  name:'vueSettlementComponents',
  props:{
    third:{
      type: Number,
      default: 0
    }
  },
  data() {
    return{
      frist: 0,
      second: 0
    }
  },
  methods:{
    plus() {
      alert(Number(this.frist)+Number(this.second)+Number(this.third))
      this.$emit('all',Number(this.frist)+Number(this.second)+Number(this.third))
    }
  }

}
</script>

src下新建index.js

import VueSettlementComponents from '../src/components/vueSettlementComponents.vue'
const coms = [VueSettlementComponents]; // 将来如果有其它组件,都可以写到这个数组里

// 批量组件注册
const install = function (Vue) {
  coms.forEach((com) => {
    Vue.component(com.name, com);
  });
};

export default install;

install方法会在 vue.use(plugin) 时调用

配置打包方式(只打包自定义组件,可配置):

 "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "build:components": "vue-cli-service build --target lib ./src/index.js --name vueSettlementComponents --dest package",
    "lint": "vue-cli-service lint"
  },
--target lib 关键字 指定打包的目录
--name 打包后的文件名字
--dest 打包后的文件夹的名称

指定文件夹打包后,生成bundle文件

上传自定义组件的npm包

在生成bundle文件的文件夹下,创建npm包

npm init -y
npm login
npm publish

这个时候,npm官方就有 vue-settlement-component 这个包了

使用自定义组件的npm包

npm install vue-settlement-component

main.js

// 引入自己定义的第三方vue组件,全局使用
import VueSettlementComponents from "vue-settlement-components";
Vue.use(VueSettlementComponents)

页面中使用

   <div style="margin-top:40px">
       <div>自定义组件封装的npm包(已经传入值4了)</div>
      <vue-settlement-components :third="4" style="margin-top:10px"></vue-settlement-components>
   </div>

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:22:38  更:2022-03-10 22:26:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:36:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码