当前位置:   article > 正文

鸿蒙开发记录_@builderparam装饰

@builderparam装饰

1.@BuilderParam装饰器

初始化方式有两种,1.父组件直接在外层定义@builder函数 2.尾随闭包形式,只支持一个BuilderParam的场景。
问题:两种初始化方式不同,在父组件内效果也不同,方式一 组件支持通用属性和方法 方式二不支持

2.关于base64图片格式转buffer

在js中将base64使用fs写到本地

const fs = require('fs');  
const path = require('path');  
  
// 假设canvas是您的Canvas对象  
const canvas = document.getElementById('myCanvas');  
  
// 将canvas转换为DataURL  
const dataURL = canvas.toDataURL();  
  
// 将DataURL转换为ArrayBuffer  
const base64Data = dataURL.split(',')[1];  
const binaryString = atob(base64Data);  
const bytes = new Uint8Array(binaryString.length);  
for (let i = 0; i < binaryString.length; i++) {  
  bytes[i] = binaryString.charCodeAt(i);  
}  
  
// 将ArrayBuffer写入本地文件  
const filePath = path.join(__dirname, 'output.png'); // 指定输出文件的路径和名称  
fs.writeFile(filePath, Buffer.from(bytes), (err) => {  
  if (err) {  
    console.error('写入文件时发生错误:', err);  
  } else {  
    console.log('文件已成功写入:', filePath);  
  }  
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

上面例子中使用到了atob()函数,但是此方法在ArkTS中不支持,实现方式如下

import buffer from '@ohos.buffer';

const base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAjCAIAAABzZz93AAA"
let bufferdata = buffer.from(base64.spit(',')[1], 'base64');
const file = fs.open(savepath,fs.OpenMode.REAN_WRITE | fs.OpenMode.CREATE)
fs.write(file.fd,bufferdata.buffer)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.不支持解构赋值写法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/476523
推荐阅读
相关标签
  

闽ICP备14008679号