分类 代码如诗 下的文章
js数字转字符串后科学计数问题
起因还是由于封装的函数库里面有一个精度计算的问题,代码如下:
const addExact(arg1, arg2) => {
let r1, r2, m;
try {
r1 = arg1.toString().split('.')[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
m = Math.pow(10, Math.max(r1, r2));
return Math.round(arg1 * m + arg2 * m) / m;
}; .sync 修饰符
在有些情况下,我们可能需要对一个 prop 进行“双向绑定”。不幸的是,真正的双向绑定会带来维护上的问题,因为子组件可以变更父组件,且在父组件和子组件都没有明显的变更来源。今天扒拉官方文档,发现.sync这块还是理解的不是太好,于是写一个demo,做一下记录。
Vue父组件异步获取数据传给子组件
在vue构建页面的顺序为,父组件构建 → 子组件构建 → 父组件获取异步数据 → 子组件获取父组件异步数据 → 子组件更新,也就是说构建的时候生命周期只会执行一次。
前端架构认知
没有一种架构是可以满足所有迭代的需求的
架构并不是只限于技术选型,架构作为软件生命周期的一部分!软件的生命周期包含了迭代、维护、重构等过程,架构设计亦是如此,所以说架构是需要变化的,目的就是适应当前情况的开发场景。
而架构产生的时间,必定是受到当时的约束条件,如人力、团队技术积累、时间、业务定位等等需求。所以,当前架构可能并不能满足未来的需求,我们要开放对待这个问题,只要当前的架构符合一定的设计原则,未来进行架构的演进就不是问题。
“架构”这个词解释也没有一个明确的定义,每个层级,每个场景都有自己的解释,所以到底什么是架构呢?
Vue进阶之attrs
周末随手看Vue的api文档,看到了vm.$attrs这个,官方是这么解释的:
包含了父作用域中不作为prop被识别 (且获取) 的attribute绑定 (class和style除外)。当一个组件没有声明任何prop时,这里会包含所有父作用域的绑定 (class和style除外),并且可以通过v-bind="$attrs"传入内部组件——在创建高级别的组件时非常有用。
看完之后发现,这些解释比较晦涩,官方也没有具体的例子来解释!还是自己动手整个demo来看看吧!!!
Vue 加载 Sass Loader 报错
之前用cli脚手架搭完之后,直接把vue.config.js丢项目根目录就完事了,前几天用脚手架重新搭了个项目,安装完各种依赖之后,运行竟然莫名其妙的报错了:
ValidationError: Invalid options object. Sass Loader has been initialised using an options object that does not match the API schema. Vue项目用Electron改造为桌面客户端
本文章适用于用Cli3脚手架搭建的项目,这里我拿已有项目为例,所以项目搭建之类的就不在这里一一描述了。
Windows Terminal自定义配置
Windows Terminal 是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 Tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 GPU 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。
Vue配置RTMP直播流
什么是HLS,RTSP,RTMP
HLS 协议:基于HTTP协议的流直播(wikipedia)。苹果推出的解决方案,将视频分成 5-10 秒的视频小分片,然后用 m3u8 索引表进行管理。由于客户端下载到的视频都是 5-10 秒的完整数据,故视频的流畅性很好,但也同样引入了很大的延迟(HLS 的一般延迟在 10-30s 左右)。相比于 FLV, HLS 在iPhone 和大部分 Android 手机浏览器上的支持非常给力,所以常用于 QQ 和微信朋友圈的 URL 分享。
RTSP(Real-Time Stream Protocol)由Real Networks 和Netscape共同提出的,基于文本的多媒体播放控制协议. RTSP定义流格式,流数据经由RTP传输;RTSP实时效果非常好,适合视频聊天,视频监控等方向。
RTMP 实时消息传输协议,由Adobe公司研发,但当前还没有收入国际标准(wikipedia)。协议比较全能,既可以用来推送又可以用来直播,其核心理念是将大块的视频帧和音频帧“剁碎”,然后以小数据包的形式在互联网上进行传输,且支持加密,因此隐私性相对比较理想,但拆包组包的过程比较复杂,所以在海量并发时容易出现一些不可预期的稳定性问题。
