网易云音乐小程序开发笔记
基础知识setData同步异步问题
setData在逻辑层的操作是同步,因此this.data中的相关数据会立即更新;
setData在视图层的操作是异步,因此页面渲染可能并不会立即发生。
之所以后者是异步,主要是考虑到将数据从逻辑层发送到视图层的过程中相比直接在逻辑层内操作会花费更多时间也会有更多不确定,于是为保证前端用户体验与减少系统开销,就索性异步了。
但是setData的设计也考虑到有些代码需要在确定setData引起的页面渲染完成后才执行,因此setData其实是有预留渲染完毕后的回调函数的:Page.prototype.setData(Object data, Function callback)。
比如下面这个代码片段,就是渲染完毕后才弹出提示对话框,以保证用户体验一致
12345678910self.setData({ "leader.name": "jack.ma" }, function() { wx.showToast({ ...
webpack深入学习
webpack基础知识定义webpack是一种前端资源构建工具,一个静态模块打包器在webpack看来,前端的所有资源文件js/json/css/img/less等都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源bundle
引入js资源引入样式资源引入图片、字体等其他资源一般是在一个文件中集中引入所需资源
在项目路径下执行 npm init,初始化项目生成package.json,,初始化之后才能安装webpack包,因为配置信息存储在package.json中
打包图片
Webpack五个核心概念Entry入口指示 Webpack以哪个文件为入口起点开始打包,分析构建内部依赖图
Output输出指示 Webpack打包后的资源bundiles输出到哪里去,以及如何命名
Loader让webpack能够去处理那些非javascript文件(webpack自身只理解js/json)
Plugins可以用于执行范围更广的任务,插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量
loader只能翻译,不能压缩。Plugins可以压缩
Mode(模式 ...
react基础+进阶
typora-copy-images-to: assects
一、React简介React全家桶
React-Router(路由)、PubSub(消息管理)、Redux(集中式状态管理) Ant-Design(UI组件库)
React定义
React是用户构建用户界面的JavaScript库,react只关注页面(视图)发送请求获取数据(axios、fetch、ajax)处理数据(过滤、整理格式)操作DOM呈现页面(react工作)
React是一个将数据渲染为HTML视图的开源JS库
React谁开发的
Facebook开发,且开源,Facebook工程师Jordan Walke创建,2011年部署于newsfeed
2012年部署于ins,2013年开源
React被阿里、腾讯等一线大厂使用
为什么要学习React?
原生js操作DOM效率低且繁琐 document.getElementById(‘btn1’)
DOM API操作UI(样式)
使用js直接操作DOM,浏览器会进行大量的重绘重排
原生js没有组件化(模块化)编码方案,代码复用率低
React的特点
采用组 ...
Promise深入学习
剖析Promise实例对象与函数对象
function Fn(){ //Fn是函数}
let fn = new Fn() //fn是实例对象
console.log(Fn.prototype); //Fn是函数对象
Fn.bind({}); //Fn是函数对象,函数对象才有bind apply call方法
Fn.call({}); //Fn是函数对象
$(‘#test’); //jquery函数
$.get(‘/test’) //jquery函数对象
两种类型的回调函数
同步回调:数组的回调一般都是同步回调
异步回调:定时器 网络请求 文件IO
JS的Error处理
Error:所有错误的父类型
ReferenceError:引用的变量不存在
TypeError: 数据类型不正确
RangeError: 数据值不存在
SyntaxError:语法错误
123456789console.log(a); //ReferenceError: a is not definedlet b = null;console.log(b.xsx); //TypeError: Cannot ...
ES6知识点集合
简介
定义:ECMAScript是由Ecma国际通过ECMA-262标准化的脚本程序设计语言
Ecma国际制定了许多标准,而ECMA-262只是其中的一个,ES6就是ES2015
ES6版本变动内容多,加入许多语法特性,是前端发展趋势
ES6兼容性,可以用babel进行转换成ES5等更低级的标准以支持IE等浏览器
ES6是JS语言的标准,是被浏览器支持的,只是支持程度不同,和TypeScript不同,TS需要被编译成JS才会被浏览器执行
语法let关键字
*let不能重复声明同一变量
let的作用域是块级作用域,只在作用域内生效
var则不同,var没有块级作用域,如果在方法中声明类型为var的变量,则为局部变量;如果在全局中声明,则为全局变量1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071function fn() { var a = 1; co ...
Electron+React实战跨平台应用
Electron+React实战跨平台应用应用架构md和xlsx文档编辑并自动上传保存到七牛云
DEMO脚手架1git clone https://github.com/electron/electron-quick-start
执行npm install安装node_modules会报错,按照如下命令安装并启动成功
123456789//使用淘宝镜像npm config set ELECTRON_MIRROR https://npm.taobao.org/mirrors/electron///为了兼容后面的devtron开发者工具(最近一次更新是5年前),需要降级到5.0.6版本npm uninstall electronnpm install -D electron@5.0.6npm installnpm start
Demo的图片
进程和线程线程是操作系统能够调度的最小单位,被包含在进程之中。一个进程可以有多个线程
一个应用程序可以有多个进程。
js是异步单线程
进程之间内存很难共享,通信也不方便(可以使用IPC实现)。
...
hexo使用大全
一、hexo的butterfly主题支持moc3格式的l2d
本教程参考了 guoshidu( https://github.com/guoshidu ) 的实现,不过他是在yilia主题的基础上实现的,详见issue: https://github.com/guoshidu/hexo-live2d-moc3/issues/1
本教程需要魔改butterfly,本教程基于hexo-theme-butterfly 3.7.6版本,安装方式是通过github安装到themes文件夹下面。而不是通过npm install进行的安装,其注意区别
本教程中将butterfly文件夹中的config.yml的内容拷贝到了主项目根目录的_config.butterfly.yml文件中,hexo会将主目录的_config.butterfly.yml、_config.yml和butterfly文件夹中的_config.yml自动进行合并,重复的键优先级主目录>butterfly文件夹,_config.butterfly.yml优先级高于_config.yml
(一)引入js
修改_config. ...
记一次密码破解之旅
开始
由于众所周知的问题,访问github速度实在感人,一直贯彻白嫖信念的自己,买了一个vpn,结果网页端访问github速度正常,但是客户端执行git clone等操作还是很慢,还经常失败,气死我了,发了工单也没人回。幸好只买了一个月的会员,后面不再续了,就是下面这个软件,叫VME
扯远了,昨晚逛B站看有B友推荐dev-sidecar这个软件,说是可以解决github访问速度慢的问题。今天研究了一下,确实还可以。而且软件的增强模式还需要自己破解源码提示来开启。所谓增强模式,估计就是可以科学上网的模式,你说这个我可来劲了啊。
破解
第一步:找到仓库,克隆源代码 git clone https://github.com/docmirror/dev-sidecar.git
第二步:软件已经提示,TODO,搜索即可
第三步:很明显,下面一行应该是一段文字的UNICODE编码,复制并在线解码(网站:https://www.bejson.com/convert/unicode_chinese/)如下
第四步:解码后的很明显是base64编码(以==结尾的,大概率是b ...
vercel中报错Failed to fetch one or more git submodules
博客使用hexo安装hexo-theme-butterfly的时候,使用git clone将其安装在themes路径下(大概是为了方便修改?但是不知道能不能修改呢?)。
在git commit的时候会提示仓库内包含另一个仓库,建议使用git submodules将被包含的仓库添加为子仓库。执行完git submodules,再push到github,然后vercel自动构建后网站就无法打开,打开vercel Dashboard查看Deploy日志,发现报警告Warning: Failed to fetch one or more git submodules
解决办法是在主项目目录下新建一个.gitmodules文件,里面指定子仓库的安装路径和git地址以及分支1234[submodule "themes/butterfly"] path = themes/butterfly url = https://github.com/jerryc127/he ...
react-native-tanhua
为方便使用:react-native可简称为rn
一、环境搭建参考:https://blog.csdn.net/weixin_43090018/article/details/114359937
安装过程中遇到下面几个问题
npm设置淘宝镜像加快速度
安装yarn npm install yarn -g
android studio加载速度慢,设置build.gradle为阿里镜像
12345678910111213141516171819202122buildscript{ repositories{ maven{ url'https://maven.aliyun.com/repository/gradle-plugin' } maven{ url'https://maven.aliyun.com/repository/google' } maven{ ...