最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Vue3中使用vue3-print-nb實(shí)現(xiàn)前端打印功能

 更新時(shí)間:2024年06月16日 09:00:38   作者:小白Coding日志  
在前端開發(fā)中,經(jīng)常需要打印頁面的特定部分,比如客戶列表或商品詳情頁,要快速實(shí)現(xiàn)這些功能,可以使用 vue3-print-nb 插件,本文就給大家介紹了如何在 Vue 3 中使用 vue3-print-nb 實(shí)現(xiàn)靈活的前端打印,需要的朋友可以參考下

前言

在前端開發(fā)中,經(jīng)常需要打印頁面的特定部分,比如客戶列表或商品詳情頁。要快速實(shí)現(xiàn)這些功能,可以使用 vue3-print-nb 插件。它通過對 DOM 元素的操作和 CSS 樣式的處理,輕松實(shí)現(xiàn)頁面內(nèi)容的打印功能。

安裝

當(dāng)前示例以Vue3+ElementPlus為例,如果要使用vue2版本的就安裝npm install vue-print-nb --save。

npm install vue3-print-nb --save
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import print from 'vue3-print-nb'
import './style.css'
import App from './App.vue'
const app = createApp(App)

app.use(ElementPlus)
app.use(print)
app.mount('#app')

使用

<script setup>
import { ref } from 'vue'

defineProps({
  msg: String,
})

const count = ref(0)

const tableData = [
  {
    date: '2016-05-03',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-04',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
  {
    date: '2016-05-01',
    name: 'Tom',
    address: 'No. 189, Grove St, Los Angeles',
  },
]

</script>

<template>
  <h1>{{ msg }}</h1>
  <div class="btn">
    <el-button type="primary" v-print="'#printTable'">打印</el-button>
  </div>
  <el-table id="printTable" :data="tableData" border style="width: 100%">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
</template>

只需要在要打印的元素上通過v-print屬性即可實(shí)現(xiàn)打印的效果,可以選擇打印全部或者打印指定頁面,比如我只想要打印el-table表格部分,只需要在el-button按鈕上面綁定v-print="'#printTable'",我已經(jīng)提前在el-table上定義好了id="printTable",v-print的屬性值對應(yīng)的就是el-table。 打印效果預(yù)覽

以上實(shí)現(xiàn)了一個(gè)最基本的打印效果,v-print還支持更多的屬性呢!它的屬性值可以是一個(gè)對象以此來實(shí)現(xiàn)更加定制化的打印效果,一起來看看吧

HTML

  <div class="btn">
    <el-button type="primary" v-print="printObj">打印</el-button>
  </div>
  <el-table id="printTable" :data="tableData" border style="width: 100%">
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>

JavaScript

const printObj = {
  id: 'printTable',
  popTitle: 'print nb',
  extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
  extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
  beforeOpenCallback (vue) {
    console.log('打開之前')
  },
  openCallback (vue) {
    console.log('執(zhí)行了打印')
  },
  closeCallback (vue) {
    console.log('關(guān)閉了打印工具')
  }
}

我們可以給要打印的頁面指定額外的樣式、額外的樣式、額外頭,甚至是添加回調(diào)函數(shù)!

打印網(wǎng)址

printObj對象添加一個(gè)url屬性即可實(shí)現(xiàn)打印當(dāng)前網(wǎng)址對應(yīng)的整個(gè)頁面。但是如何設(shè)置了url數(shù)據(jù)就不能再同時(shí)設(shè)置id屬性了。還有一點(diǎn)需要的注意的是設(shè)置url屬性需要確保同源策略相同!

const printObj = {
  url: 'http://localhost:5173/',
  popTitle: 'good print',
  extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
  extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
  beforeOpenCallback (vue) {
    console.log('打開之前')
  },
  openCallback (vue) {
    console.log('執(zhí)行了打印')
  },
  closeCallback (vue) {
    console.log('關(guān)閉了打印工具')
  }
}

打印預(yù)覽

設(shè)置了preview屬性將在打印時(shí)候顯示打印預(yù)覽。

const printObj = {
  id: 'printTable',
  preview:true, // 打印預(yù)覽
  previewTitle: '打印預(yù)覽',
  popTitle: 'good print',
  extraCss: "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
  extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
  beforeOpenCallback (vue) {
    console.log('打開之前')
  },
  openCallback (vue) {
    console.log('執(zhí)行了打印')
  },
  closeCallback (vue) {
    console.log('關(guān)閉了打印工具')
  }
}

打印預(yù)覽效果

v-print API

參數(shù)說明類型可選項(xiàng)默認(rèn)值
id范圍打印ID,必填值String
standard文檔類型(僅打印本地范圍)Stringhtml5/loose/stricthtml5
extraHead在節(jié)點(diǎn)中添加 DOM 節(jié)點(diǎn),多個(gè)節(jié)點(diǎn)用 分隔,(僅打印局部范圍)String
extraCss新的 CSS 樣式表,并使用 分隔多個(gè)節(jié)點(diǎn),(僅打印局部范圍)String-
popTitle標(biāo)簽內(nèi)容(僅打印本地范圍)String-
openCallback調(diào)用打印工具成功回調(diào)函數(shù)FunctionReturns the instance of Vue called at that time-
closeCallback關(guān)閉打印工具成功回調(diào)函數(shù)FunctionReturns the instance of Vue called at that time-
beforeOpenCallback調(diào)用打印工具前的回調(diào)函數(shù)FunctionReturns the instance of Vue called at that time-
url打印指定URL。(不可同時(shí)設(shè)置ID)string--
asyncUrl通過 'resolve()' 返回 URLFunction--
preview預(yù)覽工具Boolean-false
previewTitle預(yù)覽工具標(biāo)題String-'打印預(yù)覽'
previewPrintBtnLabel預(yù)覽工具按鈕的名稱String-'打印'
zIndex預(yù)覽工具的 CSS:z-indexString,Number-20002
previewBeforeOpenCallback啟動(dòng)預(yù)覽工具前的回調(diào)函數(shù)FunctionReturns the instance of Vue-
previewOpenCallback預(yù)覽工具完全打開后的回調(diào)函數(shù)FunctionReturns the instance of Vue-

官方文檔:https://github.com/Power-kxLee/vue3-print-nb?tab=readme-ov-file#v-print-api

到此這篇關(guān)于在Vue3中使用vue3-print-nb實(shí)現(xiàn)前端打印功能的文章就介紹到這了,更多相關(guān)vue3前端打印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue如何引入sass全局變量

    vue如何引入sass全局變量

    sass或者less都提供變量設(shè)置,在需求切換主題的項(xiàng)目中使用less或者sass變量,這篇文章主要介紹了vue引入sass全局變量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Vue下拉框雙向聯(lián)動(dòng)效果的示例代碼

    Vue下拉框雙向聯(lián)動(dòng)效果的示例代碼

    這篇文章主要介紹了Vue下拉框雙向聯(lián)動(dòng)效果,實(shí)現(xiàn)聯(lián)動(dòng),大家都知道在vue的頁面中,想要實(shí)現(xiàn)多個(gè)<el-select 下拉框的值動(dòng)態(tài)改變,必須要調(diào)用@change 函數(shù),具體操作方法跟隨小編一起學(xué)習(xí)下吧
    2022-04-04
  • vue實(shí)現(xiàn)豎屏滾動(dòng)公告效果

    vue實(shí)現(xiàn)豎屏滾動(dòng)公告效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)豎屏滾動(dòng)公告效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解Axios 如何取消已發(fā)送的請求

    詳解Axios 如何取消已發(fā)送的請求

    這篇文章主要介紹了詳解Axios 如何取消已發(fā)送的請求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • vue實(shí)現(xiàn)多級側(cè)邊欄的封裝

    vue實(shí)現(xiàn)多級側(cè)邊欄的封裝

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)多級側(cè)邊欄的封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 詳解如何用VUE寫一個(gè)多用模態(tài)框組件模版

    詳解如何用VUE寫一個(gè)多用模態(tài)框組件模版

    這篇文章主要介紹了詳解如何用VUE寫一個(gè)多用模態(tài)框組件模版,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue進(jìn)行數(shù)據(jù)可視化圖表展示的實(shí)現(xiàn)示例

    Vue進(jìn)行數(shù)據(jù)可視化圖表展示的實(shí)現(xiàn)示例

    數(shù)據(jù)可視化是現(xiàn)代化的數(shù)據(jù)分析和展示方式,可以使數(shù)據(jù)更加直觀、易于理解和傳達(dá),Vue作為一款流行的前端框架,提供了豐富的插件和工具來實(shí)現(xiàn)數(shù)據(jù)可視化圖表展示,本文將介紹如何使用Vue和Echarts/D3.js來實(shí)現(xiàn)數(shù)據(jù)可視化圖表展示,并提供示例代碼和實(shí)際應(yīng)用場景
    2023-10-10
  • vue+springboot實(shí)現(xiàn)登錄功能

    vue+springboot實(shí)現(xiàn)登錄功能

    這篇文章主要為大家詳細(xì)介紹了vue+springboot實(shí)現(xiàn)登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • vue基于element的區(qū)間選擇組件

    vue基于element的區(qū)間選擇組件

    這篇文章主要介紹了vue基于element的區(qū)間選擇組件,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue3集成Leaflet實(shí)現(xiàn)一個(gè)功能完整的地圖可視化組件

    Vue3集成Leaflet實(shí)現(xiàn)一個(gè)功能完整的地圖可視化組件

    在現(xiàn)代 Web 應(yīng)用中,地圖可視化是一個(gè)常見的需求,無論是展示位置信息、軌跡追蹤,還是數(shù)據(jù)統(tǒng)計(jì)分析,地圖都能提供直觀的視覺體驗(yàn),本文將詳細(xì)介紹如何在 Vue 3 項(xiàng)目中集成 Leaflet 地圖庫,實(shí)現(xiàn)一個(gè)功能完整的地圖可視化組件,需要的朋友可以參考下
    2026-01-01

最新評論

茌平县| 垦利县| 新化县| 阳信县| 大厂| 邵东县| 枣强县| 新兴县| 永靖县| 浦北县| 阿拉尔市| 墨脱县| 老河口市| 泾源县| 通州市| 安福县| 庄浪县| 太原市| 建德市| 威海市| 临清市| 蓬莱市| 灵宝市| 许昌市| 文昌市| 泸溪县| 云安县| 株洲县| 抚州市| 永福县| 柘城县| 于都县| 即墨市| 固阳县| 邯郸县| 家居| 桃园市| 尖扎县| 眉山市| 玛曲县| 新蔡县|