国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

這篇具有很好參考價(jià)值的文章主要介紹了vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一 前言

當(dāng)我們項(xiàng)目中用到的表格太多的話,就會(huì)導(dǎo)致我們的代碼量一直增加,所以我們要封裝一個(gè)公共得組件,通過傳參引入來使用,下面這篇文章主要給大家介紹了關(guān)于vue3+vite自定義封裝vue組件發(fā)布到npm包的相關(guān)資料,需要的朋友可以參考下。

二 創(chuàng)建項(xiàng)目

npm init vite@latest

三 創(chuàng)建步驟

  1. 提示我們要安裝create-vite@4.1.0得依賴,選擇y
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  2. 起一個(gè)組件名字,然后我們選擇vue
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  3. 這里我選擇的是javascript,然后回車
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  4. 安裝完成
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  5. 因?yàn)槲覀冃枰薳lement-ui組件庫,所以我們要手動(dòng)安裝一下依賴

    npm install element-plus --save
    

四 創(chuàng)建組件

  1. 首先,我們要在src目錄下,創(chuàng)建一個(gè)package文件夾,
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  2. package文件夾下創(chuàng)建.vue文件,(自定義名字)
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  3. 封裝我們要得組件

    這里面得內(nèi)容我就不過多講解了,有不懂的小伙伴可以問我。

    <template>
        <section>
          <div class="common-table">
            <el-table :data="tableData" stripe style="width: 100%" @selection-change="commonSelect">
              <el-table-column type="selection" width="55" v-hasPermi="['anno:image:transmission']" v-if="deveops === true">
              </el-table-column>
              <template v-for="column in column">
                <el-table-column :width="column.width ? column.width : 'auto'" :prop="column.prop" :label="column.label">
                  <template #default="scope">
                    <slot v-if="column.imageId" :name="column.prop" :row="scope.row">
                    </slot>
                    <template v-else-if="column.prop === 'imagePreview'">
                      <div class="overview">
                        <common-errimg :srcImg="scope.row.thumbUrl"/>
                      </div>
                    </template>
                    <template v-else-if="column.label === '操作'" v-hasPermi="['anno:image:deletedevops'] && deletedevops">
                      <el-button v-for="(item, index) in buttons" :key="index" :type="item.type"
                        @click="$emit('commonDel', scope.row)" @keyup.prevent @keydown.enter.prevent>
                        {{ item.text }}
                      </el-button>
                    </template>
                    <template v-else-if="column.label === '操作'" v-hasPermi="['anno:image:updatemark'] && updatemark">
                      <el-button v-for="(item, index) in buttons" :key="index" :type="item.type"
                        @click="$emit('commonDel', scope.row)" @keyup.prevent @keydown.enter.prevent>
                        {{ item.text }}
                      </el-button>
                    </template>
                  </template>
                </el-table-column>
              </template>
            </el-table>
          </div>
        </section>
      </template>
      <script setup>
      const emit = defineEmits()
      const prop = defineProps({
        name: 'common-table',
        tableData: {
          type: Array
        },
        column: {
          type: Array
        },
        buttons: {
          type: Array
        },
        deveops: {
          type: Boolean
        },
        deletedevops: {
          type: String
        },
        updatemark: {
          type: String
        }
      })
      // 表格多選
      const commonSelect = (row) => {
        emit("commonRows", row)
      }
      </script>
      <style lang="scss" scoped>
      .overview {
        display: inline-block;
      }
      
      .overview img {
        max-width: 100px;
        height: auto;
        max-height: 60px;
      }
      </style>
    
  4. 我們可以把我們創(chuàng)建的好的組件,找一個(gè)文件引入測(cè)試一下,確保我們的代碼沒有問題,這里我就不展示了。

五 導(dǎo)出組件

  1. src 根目錄中創(chuàng)建index.js文件,代碼如下:

    import commonTable from "./package/commonTable/commonTable.vue"; // 引入封裝好的組件
    export { commonTable } //實(shí)現(xiàn)按需引入*
    const coms = [commonTable]; // 將來如果有其它組件,都可以寫到這個(gè)數(shù)組里
    
    const components = [TestBtn];
    const install = function(App, options) {
      components.forEach((component) => {
        App.component(component.name,component);
      });
    };
    export default { install } // 批量的引入*
    
  2. 使用vite構(gòu)建
    編輯vite.config.js文件,新增build屬性 vite中文文檔

    import { defineConfig } from 'vite'
    import vue from '@vitejs/plugin-vue'
    import path from 'path'
    
    // https://vitejs.dev/config/
    export default defineConfig({
      plugins: [vue()],
      build: {
        lib: {
          entry: path.resolve(__dirname, 'src/index.js'),
          name: 'commonTable',
          fileName: (format) => `common-table.${format}.js`
        },
        rollupOptions: {
          // 確保外部化處理那些你不想打包進(jìn)庫的依賴
          external: ['vue'],
          output: {
            // 在 UMD 構(gòu)建模式下為這些外部化的依賴提供一個(gè)全局變量
            globals: {
              vue: 'Vue'
            }
          }
        }
      }
    })
    
  3. 修改package.json文件

    {
      "name": "common-lyh",
      "private": true,
      "version": "0.0.1",
      "type": "module",
      "scripts": {
        "dev": "vite",
        "build": "vite build",
        "preview": "vite preview"
      },
      "files": ["dist"],
      "main": "./dist/test-btn.umd.js",
      "module": "./dist/test-btn.es.js",
      "exports": {
        ".": {
          "import": "./dist/test-btn.es.js",
          "require": "./dist/test-btn.umd.js"
      }
    },
      "dependencies": {
        "vue": "^3.2.45"
      },
      "devDependencies": {
        "@vitejs/plugin-vue": "^4.0.0",
        "less": "^4.1.3",
        "sass": "^1.58.3",
        "vite": "^4.1.0"
      }
    }
    

六 打包

當(dāng)我們都配置好以后,我們就要打包了,這是我們要上傳得文件

  1. 打包,生成dist文件

    npm run build
    

    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

  2. 注冊(cè)npm賬號(hào) 官網(wǎng)地址

    • 想要發(fā)布到npm倉庫,就必須要有一個(gè)賬號(hào),先去npm官網(wǎng)注冊(cè)一個(gè)賬號(hào),注意記住用戶名、密碼和郵箱,發(fā)布的時(shí)候可能會(huì)用到
    • 有些小伙伴可能本地的npm鏡像源采用的是淘寶鏡像源或者其它的,如果想要發(fā)布npm包,我們得吧我們得npm源切換為官方得源,命令如下:
      npm config set registry=https://registry.npmjs.org
      
  3. 發(fā)布前準(zhǔn)備
    dist文件生成package.json文件,自定義組件名(唯一,重名報(bào)錯(cuò)重新起一個(gè)就行),版本號(hào)每次上傳要高于前一次版本號(hào)
    dist根目錄中運(yùn)行:

    npm init -y
    
    {
      "name": "common-lyh",
      "version": "1.0.1",
      "description": "",
      "main": "common-table.es.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [],
      "author": "",
      "license": "ISC"
    }
    
  4. 添加npm用戶
    dist目錄下,運(yùn)行命令

    npm adduser
    

    添加npm賬號(hào)得用戶名密碼還有郵箱地址

    • Username 用戶名
    • Password 密碼
    • Email 郵箱地址
    • Enter one-time password 驗(yàn)證碼
      vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。
  5. 執(zhí)行發(fā)布命令

    npm publish
    

    出現(xiàn)如下就說明我們上傳成功了,然后我們到我們的npm項(xiàng)目中查看結(jié)果
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。
    已經(jīng)上傳成功
    vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

七 使用組件

當(dāng)我們要在項(xiàng)目中使用的時(shí)候就復(fù)制npm i common-lyh
vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。
package.json文件中就有了我們安裝的組件
vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。
這個(gè)時(shí)候只要像element ui 那樣引入就可以全局使用了,在main.js中引入
vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

在我們要用到得.vue中使用
vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。

總結(jié)

到這里我們的組件就封裝并上傳好了,可以隨時(shí)通過npm下載并使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-432497.html

到了這里,關(guān)于vue3 + vite自定義封裝vue + element-ui 表格組件,發(fā)布到npm包的全過程。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue3+element-ui + TS封裝全局分頁組件

    本文介紹了如何使用Vue3、element-ui和TypeScript封裝一個(gè)全局分頁組件。 在開始之前,你需要安裝以下環(huán)境: Vue3 element-ui TypeScript 這個(gè)分頁組件提供以下功能: 支持自定義每頁顯示條數(shù) 支持自定義跳轉(zhuǎn)到指定頁碼 支持顯示總頁數(shù)和總條數(shù) 支持自定義樣式 分頁組件結(jié)構(gòu) 分頁組

    2024年02月12日
    瀏覽(25)
  • vue3 vite直接創(chuàng)建項(xiàng)目 添加 element-ui 按需引入和全部引入

    vue3 vite直接創(chuàng)建項(xiàng)目 添加 element-ui 按需引入和全部引入

    ?創(chuàng)建home 工程 yran dev就可以看到一個(gè)網(wǎng)址 點(diǎn)進(jìn)去就可以看到效果了 添加element-ui 之前的main.js 修改后的 element-plus 在vue3中的按需引入。要比2簡(jiǎn)介很多 。自動(dòng)導(dǎo)入也是推薦的一種寫法 我們注釋掉全局引用 ?然后改為按需引入 源文件 ?修改后 首先安裝兩款插件 修改后

    2024年02月17日
    瀏覽(28)
  • 基于vue和element-ui的表格組件,主推數(shù)據(jù)渲染,支持內(nèi)容和方法靈活綁定,提供動(dòng)態(tài)具名插槽自定義內(nèi)容

    基于vue和element-ui的表格組件,主推數(shù)據(jù)渲染,支持內(nèi)容和方法靈活綁定,提供動(dòng)態(tài)具名插槽自定義內(nèi)容

    ? ? ? ? 組件名為commonTable,主要是基于element-ui中的表格組件進(jìn)行二次封裝的組件,集成了常用的表格功能,除默認(rèn)內(nèi)容的顯示外,還包括以下幾點(diǎn): ? ? ? ? 1. 狀態(tài)的篩選和顯示; ? ? ? ? 2. 操作按鈕的顯示和方法綁定; ? ? ? ? 3. 自定義具名插槽內(nèi)容的封裝; ? ? ?

    2024年02月07日
    瀏覽(31)
  • Element-UI表格自定義背景顏色

    Element-UI表格自定義背景顏色

    筆記 1.如圖所示 2.?自定義樣式 ????????此處自定義設(shè)置時(shí)要加 /deep/、important ,否則不生效; 清除鼠標(biāo)經(jīng)過時(shí)的背景顏色: /deep/.el-table?tbody?tr:hovertd{ ????background-color:?unset?!important; } * 如果未設(shè)置!important該效果不生效 自定義樣式時(shí)使用f12查看元素,找到對(duì)應(yīng)元素的

    2024年02月15日
    瀏覽(40)
  • element-ui表格自定義動(dòng)態(tài)列

    element-ui表格自定義動(dòng)態(tài)列

    實(shí)現(xiàn)效果 具體功能 拖拽表頭改變寬度 限制最小寬度, 實(shí)時(shí)保存設(shè)置。 隱藏列 選中列隱藏, 不顯示在表格中。 “勾選” 列和\\\"操作\\\" 列不可隱藏, 并且不包含在列控制組件中。 隱藏后, 無論是否凍結(jié)均不顯示。有特殊標(biāo)識(shí)則要另外做判斷。 列凍結(jié) 開啟時(shí), 表示選中列靠左凍結(jié)

    2024年01月24日
    瀏覽(24)
  • Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個(gè)UI不在是問題

    Vue3 + TS + Element-Plus —— 項(xiàng)目系統(tǒng)中封裝表格+搜索表單 十分鐘寫五個(gè)UI不在是問題

    前期回顧 純前端 —— 200行JS代碼、實(shí)現(xiàn)導(dǎo)出Excel、支持DIY樣式,縱橫合并-CSDN博客 https://blog.csdn.net/m0_57904695/article/details/135537511?spm=1001.2014.3001.5501 目錄 一、?????newTable.vue 封裝Table 二、?? newForm.vue 封裝搜索表單? 三、?? TS類型?srctypesglobal.d.ts 四、?? 頁面使用功能

    2024年01月24日
    瀏覽(26)
  • 【element-ui】table表格底部合計(jì)自定義配置

    【element-ui】table表格底部合計(jì)自定義配置

    目錄 ?帶合計(jì)的表格設(shè)置 ?自定義方法??getSummaries ? 【element-ui】table表格底部合計(jì)自定義配置,最近做管理系統(tǒng)用到餓了么UI,用到了table表格合計(jì)需求,常用的table底部,有時(shí)候不是所有內(nèi)容都需要合計(jì),比如上圖這個(gè)編號(hào)是數(shù)字,但是不需要合計(jì)計(jì)算處理的,這時(shí)候就需

    2024年02月11日
    瀏覽(24)
  • Vue+Element-ui實(shí)現(xiàn)表格嵌套表格(表頭不同)

    Vue+Element-ui實(shí)現(xiàn)表格嵌套表格(表頭不同)

    data中integrateList根據(jù)后端返回的json數(shù)據(jù)確定,其格式為:

    2024年02月14日
    瀏覽(38)
  • Vue Element-ui Table表格排序

    Vue Element-ui Table表格排序

    一.表格中有時(shí)候會(huì)有排序的需求,如果只針對(duì)當(dāng)前頁進(jìn)行排序,那么前端就可以實(shí)現(xiàn)排序,在對(duì)應(yīng)需要排序的字段中,使用sortable字段即可。 二.存在分頁的情況時(shí),前端僅僅使用sortable當(dāng)前頁排序已經(jīng)不能滿足我們的需求,無法對(duì)所有數(shù)據(jù)進(jìn)行排序。這時(shí)候我們就要使用后端

    2024年02月11日
    瀏覽(25)
  • vue element-ui表格組件動(dòng)態(tài)多級(jí)表頭

    vue element-ui表格組件動(dòng)態(tài)多級(jí)表頭

    實(shí)際項(xiàng)目的需求,需要根據(jù)后端動(dòng)態(tài)獲取的方式來初始化表格的表頭包含哪些信息,且有很多信息是有規(guī)律的,所以我們需要Element UI動(dòng)態(tài)生成多級(jí)表頭。需要的效果圖如下: 由于統(tǒng)計(jì)維度是可變化的(它可以是省市也可以是區(qū)縣),所以需要專門設(shè)置一個(gè)表格的數(shù)據(jù)來保存

    2024年02月10日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包