1 Star 0 Fork 0

kangjian_haha / vue-asobtn

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

vue-asobtn

使用

npm i vue-asobtn
<template>
    <div id="app">
        <aasoBtn>按钮1</aasoBtn>
        <aasoBtn>按钮2</aasoBtn>
    </div>
</template>

<script>
import asoBtn from 'vue-asobtn'

export default {
    components: {
        asoBtn,
    },
};
</script>

项目运行

1.安装依赖

npm install

2.运行

npm run serve

3.打包

npm run build

如何打包单文件组件

资料参考

用rollup打包vue组件库

Vue官网教程(打包组件到npm)

rollup.js 中文网

项目结构图

vue-asoBtn
├─ package.json
├─ public
│  ├─ favicon.ico
│  └─ index.html
├─ rollup.config.js
└─ src
   ├─ App.vue
   ├─ components
   │  ├─ AsoBtn.vue
   │  └─ index.js
   └─ main.js

package.json

  "devDependencies": {
    "rollup": "^1.29.0",
    "rollup-plugin-vue": "^5.0.1",
    "@rollup/plugin-commonjs": "^11.0.1",  //  CommonJS 模块转换为 ES6  rollup 处理
    "@rollup/plugin-node-resolve": "^7.0.0" // rollup 无法识别 node_modules 中的包,帮助 rollup 查找外部模块,然后导入
  },
  "scripts": {
    "build": "npm run build:umd & npm run build:es & npm run build:unpkg",
    "build:umd": "rollup -c --format umd --file dist/aso-btn.umd.js",  // -c: 使用rollup.config.js作为打包配置
    "build:es": "rollup -c --format es --file dist/aso-btn.esm.js",
    "build:unpkg": "rollup -c --format iife --file dist/aso-btn.min.js"
  },

补充

1.保持组件独立性

通过生成uuid绑定元素的id;

// 通过uuid第三方模块生成uuid
import {v4 as uuidv4} from 'uuid';

// 最好在created()方法中, 生成
let uuid = uuidv4();

// 通过uuid绑定元素
let element = document.getElementById(this.uuid);
let element = document.querySelector(`#${this.uuid}`); //注: 通过querySelector绑定元素, uuid必须是字母开头

2.关于dataset

.vue文件中, <style scoped>会在组件生成data-v-xx, 如果想在组件中动态生成新的元素, 这个元素是没有data-v-xxx, 这时候定义好的css不会生效, 因为缺少data-v-xxx, 可以通过下面代码添加上

// 方法一
// 如果存在多个dataset可能会失败
for (const key in elementParent.dataset) {
            log(key); // vDe934562(v-de934562)
}
elementChildren.dataset[key] = "";

// 方法二
let str=elementParent.attributes[0].name; // data-v-xxx
str = str.substring(5).replace('-', ''); // vxxx
let newstr = str.replace(str[1], str[1].toUpperCase()); //  vXxx
elementChildren.dataset[newstr] = "";

空文件

简介

一个可以背景扩散的vue按钮. vue单文件组件, rollup打包. 展开 收起
Vue 等 3 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/kangjian_haha/vue-asobtn.git
git@gitee.com:kangjian_haha/vue-asobtn.git
kangjian_haha
vue-asobtn
vue-asobtn
master

搜索帮助