一、问题出现的背景
业务中会经常遇到两种需要改变prop的情况
- 一种是父组件传递初始值进来,子组件将它作为初始值保存起来,在自己的作用域下可以随意使用和修改。这种情况可以在组件data内,再声明一个数据,引用父组件的prop。
- 另一种情况就是prop作为需要被转变的原始值穿入。这种情况可以利用计算机属性。
二、问题出现的情况
我这次遇见的问题是在第二种情况下,来我们一起看看当时的情况(如下图所示):
当时我通过prop传入了一个color,color的值是red,然后就发生了下面的事故(如下图所示),然后就开始了面向百度编程,后来还是没有找到类似的案件,后来既然red ,不行那就试试16进制的颜色,结果还是不行。后来我就把16进制的转成10进制的,哎这次貌似可以了(激动的心,颤抖的手),后来随便输入几个数字也都可以传进来,就是非数字的就会出现下面的错误。
点开前端页面,发现输入的数字都被转换成rgb的形式了,如下图所示:
试了几个16进制转成10进制的颜色,实际上是有问题的,不知到vue内部是怎么转换成rgb的格式的,所以你输入的颜色和你得到的结果是不相符的。
三、解决的办法
对于这个问题的解决办法,我的思路是这样的,既然非数字类型的数据传不进来,那我们就先给传数值型的数据,等接收到之后,再转为16进制的,这个时候渲染的时候转成的rgb格式才是正确的。(上代码)
<!DOCTYPE html>
<head>
<meta charset="