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

news2025/4/6 1:28:00

随着前端技术的不断发展,组件化开发已经成为现代前端开发的重要趋势。组件化开发可以将大型复杂的系统分解为可重用的独立组件,实现模块解耦、代码复用和开发效率提升。本文将介绍一种基于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.coloradmin.cn/o/1043221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LetCode算法题

注:大佬解答来自LetCode官方题解 88.合并两个有序数组 1.题目 2.个人解答 var merge function (nums1, m, nums2, n) {//合并for (let i 0; i < n; i) {nums1[i m] nums2[i];}// 排序&#xff08;冒泡排序&#xff09;for (let i 0; i < m n; i) {for (let j 0…

扩散模型 - Diffusion Model【李宏毅2023】学习笔记 Part 1

台大官方网站&#xff1a;ML 2023 Spring (ntu.edu.tw) 【生成式AI】Diffusion Model 概念讲解 (1/2)_哔哩哔哩_bilibili PS&#xff1a; 又出新课程了 计算机发展太快了 希望有机会再完整学一遍2233 正式开始上课--------------------------------------------------------…

系统集成|第十七章(笔记)

目录 第十七章 变更管理17.1 项目变更的基本概念17.2 变更管理的基本原则17.3 角色职位与工作程序17.4 相关事宜 上篇&#xff1a;第十六章、信息&#xff08;文档&#xff09;和配置管理 下篇&#xff1a;第十八章、安全管理 第十七章 变更管理 17.1 项目变更的基本概念 变更…

前后端分离的大数据毕设项目之基于Spark+springboot+vue的共享单车数据存储系统的设计与实现

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

使用EPPlus实现C#控件Excel文件内容导入转换

使用EPPlus实现C#控件Excel文件内容导入转换 1.添加EPPlus库 在使用EPPlus库时&#xff0c;你需要确保在项目中添加了正确的引用。你可以通过以下方式添加引用&#xff1a; 打开你的项目。 在“解决方案资源管理器”中&#xff0c;右键单击“引用”并选择“管理NuGet程序包”…

Linux 文件和目录列表(ls 命令)

Linux 文件和目录列表&#xff08;ls 命令&#xff09; 要想知道系统中有哪些文件&#xff0c;可以使用列表命令&#xff08; ls &#xff09;。 文章目录 Linux 文件和目录列表&#xff08;ls 命令&#xff09;一、基本列表功能1. ls 命令基本形式2. ls 命令 -F 参数3. ls 命…

【笔记】ssh link-local 地址登录

1. link-local 地址 IPv6 中在局域网中是使用 link-local 地址通信的。其以 fe80:: 开头。它的形式跟物理地址 mac 关联。只要 mac 没变&#xff0c;那么&#xff0c;link-local 地址就不变。 2. 使用 link-local 地址的场景 自己搭建了一个局域网&#xff0c;有两台主机&am…

Spring整合RabbitMQ——消费者

1.配置consumer xml配置文件 2. 实现MessageListener接口 并重写onMessage方法

UG NX二次开发(C++)-采用NXOpen方法创建同步建模中的偏置曲面

文章目录 1、 前言2、在UG NX中的偏置操作3、采用NXOpen二次开发偏置曲面4、测试方法4.1 创建UI界面4.2 创建工程4.3 生成结果1、 前言 在UG NX二次开发(C++)中,通过UFun(Open C)函数进行开发的文章比较多,我们这个专栏的博客是主要采用NXOpen开发的,对于这二者的区别,我…

【面试题】面试官:说说你对js中的 防抖 和 节流 的理解

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 表妹一键制作自己的五星红旗国庆头像&#xff0c;超好看 前言 看到这个题目我想肯定会有人说&#xff1a;不会吧&#xff0c;都3202年了&#xff0c;还…

网络安全--IDS--入侵检测

1. 什么是IDS&#xff1f; IDS---入侵检测是防火墙的一个有力补充&#xff0c;形成防御闭环&#xff0c;可以及时、准确、全面的发现入侵弥补防火墙对应用层检查的缺失。对系统的运行状态进行监视&#xff0c;发现各种攻击企图、过程、结果&#xff0c;来保证系统资源的安全&a…

vue造轮子完整指南--npm组件包开发步骤

一、项目包文件的创建和初始化。 1. 新建项目包。 vue create <Project Name> //用于发布npm包的项目文件名 ps:一般选择自定义&#xff0c;然后不需要Vuex和Router&#xff0c;其他选项按自己实际情况选择安装即可。 2.修改原始src文件名、新增组件项目存放文件和修改…

大模型时代,如何找准AI发展新方向?TVP读书会与你共探

引言 随着 ChatGPT 掀起人工智能的发展狂潮&#xff0c;大模型时代悄然来临。大模型的出现让人们看到了人工智能在某些方面几乎接近人类智能的“威力”&#xff0c;也由此使人们产生了关于 AGI 的期盼与隐忧。其中&#xff0c;关于大模型是否是人工智能发展的拐点、科技从业者又…

使用chat GPT 生成一个js 生成天数的方法

function calculateDaysDifference(targetDateString) {const currentDate new Date();const targetDate new Date(targetDateString);// 计算毫秒差异const timeDifference targetDate - currentDate;// 计算天数差异&#xff0c;如果结果为负数&#xff0c;则设置为0const…

c语言结构体的内存对齐

前言&#xff1a; c语言中结构体的空间大小怎么算呢&#xff1f;就是把里面所有变量的字节大小全部加起来吗&#xff1f; 如果你这么想&#xff0c;说明你对结构体还不够了解&#xff0c;而要想知道结构体开辟空间的规则&#xff0c;那我们就必须先要知道内存对齐是什么。 接…

【链表】排序链表-力扣148题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

Spring整合第三方框架-MyBatis原始操作代码

建议自己写一下 实体类&#xff0c;用于封装数据库数据 package com.example.pojo;import java.util.Date;public class Emp {private Integer id;private String username;private String password;private String name;private Integer gender;private String image;privat…

“ElementUI实现动态树和动态表格的综合应用“

目录 引言1. ElementUI树1.1 树的基本概念1.2 示例代码和效果展示 2. ElementUI实现动态表格2.1 表格的基本概念2.2 示例代码和效果展示 总结 引言 在前端开发中&#xff0c;动态树和动态表格是常见的功能需求。ElementUI是一套基于Vue.js的组件库&#xff0c;提供了丰富的UI组…

酒店预订小程序制作详细步骤解析

" 随着移动设备的普及和互联网技术的不断发展&#xff0c;小程序成为了一个备受关注的应用领域。特别是在酒店预订行业&#xff0c;小程序可以为酒店带来更多的客源和方便快捷的预订服务。下面是酒店预订小程序的制作详细步骤解析。 第一步&#xff1a;注册登录【乔拓云】…

消费增值模式:消费送积分,只涨不跌的商业模式!

大家好&#xff0c;我是微三云吴军&#xff0c;您们的专属私域电商管家&#xff0c;国庆将至&#xff0c;中秋将至&#xff0c;祝大家度过一个愉快的节假日。 我今天给大家带来的案例分析是我们一个客户的落地成功案例&#xff0c;一个月也做到了上百万&#xff0c;但是用户数…