Xcode15安装iOS 17.2 Simulator失败的问题
iOS 17.0 Simulator在下载过程中,频繁失败,也无法断点下载。这时可以手动下载,手动安装。
登录 - Apple
点击iOS 17 Simulator Runtime.dmg下载。使用浏览器下载,支持断点续传。
下载成功后,打开终端,使用下面命令安装iOS 17.2 Simulator。
123xcode-select -s /Applications/Xcode.appxcodebuild -runFirstLaunch xcrun simctl runtime add "~/Downloads/iOS_17.2_Simulator_Runtime.dmg"
安装成功后,去Xcode设置中就可以看到iOS 17.2 Simulator了。
这个命令比较费时,三五分钟,耐心等待。
安装成功后,去Xcode设置中就可以看到iOS 17.2 Simulator了。
ES6中Class的方法不可遍历的原因,TS中遍历Class的方法出现二义性的问题
前言今天写了一段Ts代码,发现编译成ES5和ES6时的执行结果居然不同,花了点时间学习了一下,总结如下。
问题在ts代码中,使用in操作符遍历对象成员,将代码编译成ES5和ES6时,结果是不同的。
原因es6中class的所有非静态方法虽然是定义到原型对象上的,但是却是不可遍历的,源码如下
1234567891011121314151617181920// 为target对象添加属性function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i] // enumerable 默认为 false descriptor.enumerable = descriptor.enumerable || false descriptor.configurable = true if ('value' in descriptor ...
UseEffect完整指南
useEffect 完整指南useEffect 完整指南
每一次渲染都有它自己的 Props and State
当我们更新状态的时候,React 会重新渲染组件。每一次渲染都能拿到独立的count 状态,这个状态值是函数中的一个常量。
每一次渲染都有它自己的事件处理函数
我们发现count在每一次函数调用中都是一个常量值。值得强调的是 — 我们的组件函数每次渲染都会被调用,但是每一次调用中count值都是常量,并且它被赋予了当前渲染中的状态值。
所以实际上,每一次渲染都有一个“新版本”的handleAlertClick。每一个版本的handleAlertClick“记住” 了它自己的 count:
每次渲染都有它自己的 Effects我们已经知道count是某个特定渲染中的常量。事件处理函数“看到”的是属于它那次特定渲染中的count状态值。对于 effects 也同样如此:
并不是count的值在“不变”的 effect 中发生了改变,而是effect 函数本身在每一次渲染中都不相同。
每一个 effect 版本“看到”的count值都来自于它属于的那次渲染:
每一次渲 ...
华为手机如何刷全量包
什么是全量包全量包可以理解为一个完整的系统包,像我们平时通过系统升级下载的是补丁包。
手机系统长期只是用增量包或补丁包升级,就 好像补胎一样,补丁越多越危险。系统也是如此,只是在一个系统上做修改打补丁,时间久了难免会出现运行不流畅无反应耗电发热什么的。全量包就能很好的解决这些问题,保证系统完整顺畅。
全量包操作正常情况下不会丢失手机数据,不会删除保存的相片视频,不过还是建议在刷全量包之前进行系统重要数据备份!
如何升级全量包
手机关机
长按音量键+和电源键,直至菜单出现。(注意如果出现开机也不可放手,直至出现菜单画面才可)
选择“升级模式”,选择“eRecovery”模式,再选择“下载最新版本并恢复“
点击“下载并恢复”之后会自动扫描无线网络,点击你的无线网络并输入密码,密码正确后会进入服务器获取安装包信息
下载完成后自动进行校验安装包,安装包校验成功后,会自动进入恢复系统状态…
Position:fixed 一定是相对于浏览器窗口进行定位吗?
前言position:fixed 前面一直以为是浏览器窗口进行定位;最近工作中出现一个 bug,将弹框组件(弹框是 fixed 定位)写下 tabcont 中,页面显示弹框是相对于 tabcont 进行定位。这个 bug 出现直接颠覆自己认知;
重新认识一下MDN Web Docs
取值
static该关键字指定元素使用正常的布局行为,即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。
relative该关键字下,元素先放置在未添加定位时的位置,再在不改变页面布局的前提下调整元素位置(因此会在此元素未添加定位时所在位置留下空白)。position:relative 对 table-*-group, table-row, table-column, table-cell, table-caption 元素无效。
absolute元素会被移出正常文档流,并不为元素预留空间,通过指定元素相对于最近的非 static 定位祖先元素的偏移,来确定元素位置。绝对定位的元素可以设置外边距(margins),且不会与其他边距合并。 ...
记一次url传参引发的bug
bug 复现小程序开发的时候我们之前需要跳转第三方的 webview 页面,一般传参数的时候
123Taro.navigateTo({ url: `/pages/webview/index?url=url`,})
这个时候我们在 webview 页面获取 url 的参数
1const url = Taro.getCurrentInstance().router?.params?.url || ''
url 后面没有添加参数,获取的时候也是没什么问题,但是 url 后面有参数,诸如https://bot.biyouxinli.com/lianxin-botserver/openApi/gotoPsyBot?channel=TXHBOT&chnlCode=8BFE42DF24C45563B5EA6E82C67AF8139EC3757CFF1FC3E322D5CE2F41F97C407B021F83A6EF1ED3DD65CEE6&unionId=我们再像上面的方式获取 url,就会出现错误,拿不到原始完整的 url
encode ...
Npm、Yarn、Pnpm之间的区别
NPMnpm 是 Node.js 能够如此成功的主要原因之一。npm 团队做了很多的工作,以确保 npm 保持向后兼容,并在不同的环境中保持一致。npm 是围绕着语义版本控制(semver)的思想而设计的给定一个版本号:主版本号.次版本号.补丁版本号, 以下这三种情况需要增加相应的版本号:
主版本号: 当 API 发生改变,并与之前的版本不兼容的时候
次版本号: 当增加了功能,但是向后兼容的时候
补丁版本号: 当做了向后兼容的缺陷修复的时候
YARNYarn 是什么?“Yarn 是由 Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 ,正如官方文档中写的,Yarn 是为了弥补 npm 的一些缺陷而出现的。”这句话让我想起了使用 npm 时的坑了:
npm install 的时候巨慢。特别是新的项目拉下来要等半天,删除 node_modules,重新 install 的时候依旧如此
同一个项目,安装的时候无法保持一致性。由于 package.json 文件中版本号的特点,下面三个版本号在安装的时候代表不同的含义。
123&qu ...
函数式编程
定义函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。
创造一个移除所有 false(隐式类型转换为 false)类型数据的数组123456// Underscore/Loadshconst arr = [0, 1, false, 2, '', 3]_.compact(arr)// Nativearr.filter(Boolean)
返回数组 a 中不包括数组 b 的部分1234567891011121314const arrays = [ [1, 2, 3, 4, 5], [5, 2, 10],]// Underscore/Loadshconsole.log(_.difference(arrays))// output: [1,3,4]// Nativearrays.reduce(function (a, b) { return a.filter(function (value) { return !b.inclu ...
手把手搭建vuePress博客
本地安装vuePress 官方文档首先使用官方的脚手架生成基本的项目结构
12pnpm create vuepress blog#下面选择blog 之后一直回车
项目结构
123456789101112131415├── README.md├── blog│ └── \_posts│ ├── 2018-11-7-frontmatter-in-vuepress-2.md│ ├── 2018-11-7-frontmatter-in-vuepress-3.md│ ├── 2018-11-7-frontmatter-in-vuepress.md│ ├── 2019-2-26-markdown-slot-2.md│ ├── 2019-2-26-markdown-slot-3.md│ ├── 2019-2-26-markdown-slot-4.md│ ├── 2019-2-26-markdown-slot.md│ ├── 2019-5-6-writing-a-vuepress-theme-2.md│ ├── 2019-5-6-writing-a-vuepr ...