vue.js - Vuex Vue如何打印子组件而不在父组件上渲染
问题描述
我在摘要页面上有一个按钮,@click
它将打印未在该特定实例上呈现的已完成内容。
打印组件而不必在活动页面上呈现它的最佳做法是什么?
我尝试在页面上渲染组件,visibility: hidden;
以便组件渲染然后我可以单击按钮,window.print()
但这似乎是一种技巧,而不是最佳实践,而且它为我的实例增加了一个巨大的空白空间。
我需要一种方法来打印表单(组件)而不实际在页面上呈现它。
我该如何解决这个问题?
解决方案
看看@media
功能(@media print
在你的情况下)。只需创建一个始终应用的 CSS 类display: none;
,除非浏览器处于打印模式。
Vue.component('my-component', { template: '<h1 class="print">Hello World</h1>' }, )
new Vue({
el: "#app"
})
.print {
display: none;
}
@media print {
.print {
display: initial;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<my-component></my-component>
</div>
推荐阅读
- json - 如何解决模板中的Angular [object object]
- stored-procedures - 将报告过滤器传递给 APEX 中的存储过程
- sql - 过滤Oracle中的重复列
- java - 如何从类文件中获取包名?
- r - 标签右侧的文本对齐放置指定左侧的位置
- ios - 导航栏在推送和弹出视图控制器时保持不变,在转换时创建奇怪的白色效果
- python - 给定的用数字序列替换字符串的程序应该用 pandas 编写
- xcodebuild - Xcode 10 构建失败 rm 权限在 /bin/sh/ 中被拒绝
- php - 输入类型文件未上传名称为 test (copy).csv 的文件
- r - 将向量传递给R中的函数