Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值

简介: 这篇文章介绍了在Vue 2项目中使用CRC32算法和Unicode编码来生成字符串对应的颜色值的两种方法,包括如何导入依赖、编写工具函数、在Vue原型上挂载以及具体的使用示例。

前言

简单记录一下在 Vue2 项目使用 CRC32 和 Unicode 编码生成字符串对应的颜色值。

一、使用 CRC32 转换字符串来生成十六进制颜色值

1.导入依赖

npm install crc-32

2.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'
import CRC32 from 'crc-32'

const stringToColor = (str) => {
   
    if (str) {
   
        str = Math.abs(CRC32.str(str)).toString(10);
        return '#' + str.substring(0, 6);
    } else {
   
        return 'transparent'; // 透明
    }
}

Vue.prototype.$stringToColor= stringToColor

3.全局引入

import './utils/colorUtil'

4.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>

二、使用字符串 Unicode 编码生成 RGB 颜色值

1.示例代码

(1)/src/utils/colorUtil.js

import Vue from 'vue'

const stringToColor = (str) => {
   
    let hash = 0;
    for (var i = 0; i < str.length; i++) {
   
        hash = hash * 31 + str.charCodeAt(i);
        hash = intValue(hash);
    }
    let r = (hash & 0xFF0000) >> 16;
    let g = (hash & 0x00FF00) >> 8;
    let b = (hash & 0x0000FF);
    return 'rgba(' + r + ',' + g + ',' + b + ',' + '0.2)';
}

function intValue(num) {
   
    var MAX_VALUE = 0x7fffffff;
    var MIN_VALUE = -0x80000000;
    if(num > MAX_VALUE || num < MIN_VALUE)
    {
   
        return num &= 0xFFFFFFFF;
    }
    return num;
}

Vue.prototype.$stringToColor = stringToColor

2.全局引入

import './utils/colorUtil'

3.使用方式

示例一

const color = this.$stringToColor("这是一段字符串");
console.log(color);


示例二
<p>{
   {
    $stringToColor('HelloWorld') }}</p>
目录
相关文章
|
域名解析 网络协议 测试技术
性能测试-弱网测试参数选择标准
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
14054 0
性能测试-弱网测试参数选择标准
|
存储 Dragonfly 弹性计算
2023年阿里云服务器8核16G配置收费标准与活动价格参考,价格2849.76元1年起
一般来说企业用户在选择云服务器配置的时候,8核16G配置是选择比较多的,2023年新用户租用阿里云轻量应用服务器低至108元首年,8核16G配置目前活动价格仅需2849.76元1年起,不过阿里云不同实例类型的8核16G云服务器配置,产品价格也各不相同。而在平时购买和活动期间买价格也是不一样的。本文主要为大家介绍目前阿里云服务器8核16G配置收费标准与活动价格,以供参考。
1312 0
2023年阿里云服务器8核16G配置收费标准与活动价格参考,价格2849.76元1年起
|
缓存 Java 区块链
【Springboot】springboot项目替换掉默认的小叶子ico
【Springboot】springboot项目替换掉默认的小叶子ico
741 0
|
缓存 网络协议 数据可视化
WinSCP下载安装并实现远程SSH本地服务器上传文件
WinSCP下载安装并实现远程SSH本地服务器上传文件
1441 1
|
移动开发 小程序 API
uniapp通过蓝牙传输数据 (ios)
uniapp通过蓝牙传输数据 (ios)
1253 1
|
存储 缓存 Windows
释放C盘空间:WinSXS文件夹真实性大小判断及释放占用空间
WinSXS文件夹存储了不同版本的系统组件和动态链接库(DLL),包括各个Windows更新、Service Pack和功能更新安装后保留的旧版文件。即使新版本已经安装并投入使用,旧版本文件仍被保存以确保与依赖旧版本的应用程序兼容。
2888 0
释放C盘空间:WinSXS文件夹真实性大小判断及释放占用空间
|
数据安全/隐私保护
vue-img-cutter 图片裁剪详解
vue-img-cutter 图片裁剪详解
892 1
|
JavaScript
原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)
原生js实现【longPressKey】长按键盘任意键(或组合键)3秒触发自定义事件(以Pause/Break键为例)