Object.defineProperty
Object.defineProperty 是 ES5 引入的方法,用于在对象上定义新属性或修改现有属性。
let obj = {};
Object.defineProperty(obj, 'prop', {
value: 42,
writable: false
});
莫听穿林打叶声,一蓑烟雨任平生
Object.defineProperty 是 ES5 引入的方法,用于在对象上定义新属性或修改现有属性。
let obj = {};
Object.defineProperty(obj, 'prop', {
value: 42,
writable: false
});
当我们只需要监听一个简单对象的少量属性时,Object.defineProperty 可能会有更好的性能。这是因为它不需要创建额外的代理对象。
let obj = {};
Object.defineProperty(obj, 'name', {
get() {
console.log('Getting name');
return this._name;
},
set(value) {
console.log('Setting name');
this._name = value;
}
});
作为前端开发工程师,当我们左手拿着 Vue,右手拿着 React,关于它们的种种,其实我们都应该是了然于胸的。
拿到一个前端框架,我们更应该如何去看?肯定不是一头扎进 api 的调用方式,也不是一头扎进源码的海洋。我们应该有对比的看,和你熟悉的一个框架去对比。
众所周知,前端接触最多的是浏览器,浏览器也是面向用户最直接的宿主环境。我们的页面,不管是 SPA,SSR
在浏览器呈现出来的,就是 html/css/js。所以我们以结果触发,首先看,这个框架是如何生成 html/css/js 的?
我们先掌握这个宏观概念,再带着疑问去看细节。
视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。
如何推进小程序的工程化,其实就是如何在前端工程化的各个环节去推进小程序的工程化,沉淀出一套可复用的体系。
原则就是基于现状,先思考是否需要,再逐步推进;先解决有无,再解决好坏。
从开发到上线的链路来看,小程序和一般的web项目还是稍有些不同的。懂得都懂。这里随便列举几个点
问题:
解决方案:
关键决策:
某天的傍晚,使用chrome访问官网时返现被标记为欺诈网站,并且全屏红色。快速响应,制定方案。
一、申诉报告
由运维根据网站指引,去发送申诉邮件。
二、工程自检
前端主导,根据谷歌提供的诱导广告信息,排查官网的页面和接口,寻找可疑信息。
初来乍到,公司只有APP和H5,用户的转换量很少。因为作为中老年为主的患者,第一步去下载APP,对他们来说就已经有一定的成本了。特别是安卓有各种应用市场,APP Stroe有各种验证。小程序以微信为载体,在一定程度上大大降低了用户的操作门槛。
首先面向的用户
面向的群里的帕金森患者,多以中老年群体为主。
主要的业务场景,就是给患者提供的服务
小程序提供图文问诊服务,患者和医生的在线IM聊天,直播分享
关键的技术节点
IM聊天、分享、直播、图文问诊
业务域名配置
问题: 当使用 web-view 组件去预览 pdf文件的时候,安卓机型会有无法预览的问题。
解决方案: 使用先下载再预览的方式, Taro.downloadFile → Taro.openDocument
问题: 分享到朋友圈时,微信会把当前分享页面放到一个隔离沙箱中(单页面),无法和应用的其他页面通信。如果当前页面的接口401或者依赖其他页面的信息,那么当前页面分享出来的就是无效页面。
解决方案: 剥离分享朋友圈页面的上下文依赖关系
建议: 慎重开启分享朋友圈页面,开启后需要保证分享页面能正常独立加载