前端vue实现页面加水印文字 单个页面所有页面加水印(更新版)

news/2024/7/11 1:57:51 标签: 前端, vue.js, javascript, 前端框架, html5, css3, es6

随着前端技术的不断发展,组件化开发已经成为现代前端开发的重要趋势。组件化开发可以将大型复杂的系统分解为可重用的独立组件,实现模块解耦、代码复用和开发效率提升。本文将介绍一种基于Vue技术的前端页面加水印文字的组件化实现方式。

一、背景介绍

在现代Web应用中,为了保护页面内容的安全性,常常需要在页面上添加水印文字以防止未经授权的复制和传播。在过去,前端页面水印通常是一个整体模块,修改或增加一个功能就需要整体逻辑的修改,导致开发效率低下且维护成本高昂。因此,我们需要将这个功能进行组件化,使其可单独开发、单独维护且可以随意组合。

二、组件化实现

  模块拆分策略

为了实现组件化,我们需要根据业务特性将页面水印进行模块拆分。首先,我们需要将水印文字的样式和功能进行分离。样式包括颜色、大小、位置等,功能包括添加水印、移除水印等。其次,我们需要根据不同的业务需求,将通用水印和单个页面水印进行拆分

  模块交互方式

组件化的关键在于模块之间的交互方式。在页面水印的组件化实现中,我们可以采用Vue的自定义组件方式来实现。通用水印可以定义为一个独立的Vue组件,单个页面的水印可以通过在对应页面的Vue组件中引入该通用水印组件来实现。同时,我们可以通过Vue的props和events来实现模块之间的数据交互。

本文给大家介绍的一款组件是:

前端vue实现页面加水印文字, 可以实现系统所有页面加水印,也可以单个页面加水印, 可更改水印颜色, 下载完整代码uni-app插件市场地址: https://ext.dcloud.net.cn/plugin?id=12889

 更多前端组件信息请关注微信公众号: 前端组件开发

效果图如下:

58452a3cc34d858a472ec69e188f9961.png

#### 使用方法

```使用方法

/* 给系统所有页面加水印*/

// 第一个参数:水印文字  第二个参数: 加水印的底图,默认body 给所有页面加水印, 第三个参数:水印颜色

Watermark.set("cc-innovation.gd", '', 'blue');

/* 给当前页面加水印*/

// 第一个参数:水印文字  第二个参数: 加水印的底图,默认body 给所有页面加水印, 第三个参数:水印颜色

Watermark.set("cc-innovation.gd", this.$refs.content, 'red');

```

#### HTML代码部分

```html

<template>

<div class="content" ref="content">

<view class="text-area">

<text class="title">{{title}}</text>

<button @click="goDetail" style="margin-top: 20px;"> {{' 跳转 '}} </button>

</view>

</div>

</template>

```

#### JS代码 (引入组件 填充数据)

```javascript

<script>

import Watermark from "./waterMark";

export default {

data() {

return {

title: 'Hello'

}

},

mounted() {

/* 给系统所有页面加水印*/

// 第一个参数:水印文字  第二个参数: 加水印的底图,默认body 给所有页面加水印, 第三个参数:水印颜色

Watermark.set("cc-innovation.gd", '', 'blue');

/* 给当前页面加水印*/

// 第一个参数:水印文字  第二个参数: 加水印的底图,默认body 给所有页面加水印, 第三个参数:水印颜色

// Watermark.set("cc-innovation.gd", this.$refs.content, 'red');

},

methods: {

goDetail() {

uni.navigateTo({

url: './Detail'

})

}

}

}

</script>

```

#### CSS

```css

<style>

.content {

display: flex;

flex-direction: column;

align-items: center;

justify-content: center;

}

.text-area {

display: flex;

justify-content: center;

flex-direction: column;

margin-top: 30px;

}

.title {

font-size: 36rpx;

color: #8f8f94;

text-align: center;

}

</style>

```


http://www.niftyadmin.cn/n/5052601.html

相关文章

大数据Flink(九十):Lookup Join(维表 Join)

文章目录 Lookup Join(维表 Join) Lookup Join(维表 Join) Lookup Join 定义(支持 Batch\Streaming):Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。…

北斗导航系统为渔船保驾护航,助力海洋渔业发展

在无垠的海洋中&#xff0c;渔船扮演着举足轻重的角色&#xff0c;为人们带来美味的海鲜。然而&#xff0c;每一次渔船出海都充满了未知和危险&#xff0c;船只的安全成为了渔民和国家关注的焦点。幸运的是&#xff0c;北斗导航系统作为一项顶级技术正在为渔船保驾护航&#xf…

Django — 类视图和中间件

目录 一、类视图1、基于类的结构2、常见的类视图基类3、类视图的优点4、代码案例 二、中间件1、定义2、工作原理3、自带中间件4、中间件开发流程5、自定义中间件6、案例 一、类视图 类视图&#xff08;Class-Based Views&#xff09;是 Django 中用于处理 HTTP 请求和生成 HTT…

dockerfile用ENTRYPOINT好还是用CMD好

在 Dockerfile 中使用 ENTRYPOINT 和 CMD 都有其用途和优劣势&#xff0c;具体取决于你的应用和需求。这两个指令的主要区别在于如何处理容器启动时的命令参数。 1. CMD 指令&#xff1a; - CMD 用于定义容器启动时的默认命令&#xff0c;但它可以在运行容器时被替代。如果…

C#源码 LIS实验室(检验科)信息系统源码 SaaS模式的Client/Server架构

LIS实验室&#xff08;检验科&#xff09;信息系统&#xff0c;一体化设计&#xff0c;与其他系统无缝连接&#xff0c;全程化条码管理。集申请、采样、核收、计费、检验、审核、发布、质控、查询、耗材控制等检验科工作为一体的网络管理系统。 技术细节&#xff1a; 体系结构…

通俗易懂经典的黑客入门教程

第一节、黑客的种类和行为 以我的理解&#xff0c;“黑客”大体上应该分为“正”、“邪”两类&#xff0c;正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善&#xff0c;而邪派黑客则是通过各种黑客技能对系统进行攻击、入侵或者做其他一些有害于网络的事…

Qt扫盲-QSqlQueryModel理论总结

QSqlQueryModel理论总结 一、概述二、使用1. 与 view 视图 绑定2. 分离视图&#xff0c;只存数据 一、概述 QSqlQueryModel是用于执行SQL语句和遍历结果集的高级接口。它构建在较低级的 QSqlQuery之上&#xff0c;可用于向QTableView 等视图类提供数据&#xff0c;也是使用了Q…

《玩转smardaten | 无代码开发移动端APP需要几步?最全操作!》

看完这么多免编程、无代码APP软件开发的文章&#xff0c;还是一脸茫然&#x1f62e;...只讲能开发出什么玩意&#xff0c;不讲到底怎么开发&#xff0c;我怎么学会&#xff1f; 来了&#xff0c;无代码的移动端操作教程&#xff0c;从PC移动端一体式开发&#xff0c;到移动端单…