在使用UNIAPP进行开发的时候,component是经常要用到的,但在使用过程中会发现,经常用的onLoad/onShow无法被触发。而props在传进去时,data获取变量调用props时,也有延迟。
膘叔的简单人生
在使用UNIAPP进行开发的时候,component是经常要用到的,但在使用过程中会发现,经常用的onLoad/onShow无法被触发。而props在传进去时,data获取变量调用props时,也有延迟。
更新代码的时候突然发现:
众所周知,苹果不外接显示器的时候,屏幕盖上,就自动睡眠了,当然,部分支持NAP的程序,偶尔会唤醒一下电脑,用来收收邮件之类的。所以你即使一直盖着,电量还j是会在逐渐下降的。
为了让闲置的2018发挥作用,我现在尝试的就是想让他不睡眠,如果是在电源管理那里设置,好象也没有什么太大的作用,该睡还是睡了。
搜了网上的很多资料,有一些禁用睡眠的软件,但部分都是要钱的,搜到amphetamine后也非常开心,直接在app store就能够下载。于是乎下载下来,设置默认闭屏不休眠。
现在正在测试中,目前还是可以用VNC连接上去。暂时还是可以使用。。等过两天看看效果究竟如何
就一句话:莫站队,站队必被锤
如题
function test():never {
exit(1);
}
doSomething(){
test() ;
echo 123;
}
在IDE里,会提示这个echo 123;的错误是unreachable
在看新闻时突然看到说onedrive开始支持原生版本了,版本号是:22.022,兴冲冲的下载,结果发现还是Intel。。。
在使用UniApp进行小程序开发的时候,总是不可避免的会使用tabbar。在小程序中tabbar的页面和普通的页面不一样,比如,他对应的页面就始终含有tabbar,而其他页面则不显示tabbar(要显示只能用自定义组件)。而且切换页面的时候,只能用switchTab,而不能用navigateTo。
这些都是平时可以看得到和可以通过报错信息查看得到的(比如navigateTo跳到tabbar时,出错信息就是提示不能跳转到tabbar的页面)。
tabbar还有一些有意思的小特性,比如,tabbar对应的页面,不能是分包里的,只能含在主包里。tabbar打开后数据加载完,默认不再刷新。这个就带来不小的问题,比如电商的首页,加载后不刷新那就一直无法获取最新数据了。
通过查看uniapp的文档,发现App.vue除了常见的onLaunch/onShow/onHide等之外,还有什么onPageNotFound(这个平时不会触发,只有扫描、转发等才会触发,navigateTo等不会触发此事件)之类的。[应用生命周期:生命周期 - uni-app官网 (dcloud.io)]
而普通页面,常用事件就是onInit/onLoad/onShow/onHide/onUnload,除此之外还有:onResize/onPullDownRefresh/onReachBottom/onPageScroll,如果是页面点击事件,还有onTabItemTap/onShareAppMessage/onNavigationBarButtonTap/onBackPress【页面生命周期:生命周期 - uni-app官网 (dcloud.io)】
当注意到onTabItemTap事件后,就想起来,可以利用此事件进行操作:onTabItemTap(e){console.log(e);},打印这个e,可以看到他是一个Json对象,有三个主要的key:index/pagePath/text,index是针对Tabbar的索引 ,pagePath是当前Tab的路径,text是tabbar对应的文字。
于是就可以利用这个pagePath:
onTabItemTap(e){
uni.reLaunch({url:e.pagePath});
}
偷懒的时候就可以直接这么做。
纯记录。
Zerotier和tailscale一样都是类似创建虚拟网络的一个软件,Tailscale有个不太好的地方就是只能用google账号登录(记不清是我当时这么选的,还是只能用这个登录了。也就导致了我在IOS上无法登录。毕竟登录google账号需要VPN,然后Tailscale如果active,就又要自己创建vpn,结果 就导致关闭了梯子的VPN,真是一个悖论。)
在电脑上使用的时候,两者差不太多,如果使用Tailscale的话,需要每个月登录一次(mac下,否则可能会token过期)。zerotier好象目前还没有遇到。
同时,zerotier可以使用moon节点加速,tailscale好象暂不行,只能通过国外中转。zerotier原来有100个免费的leaf,现在降为50个了,但对普通人说,别说50个,就是10个也足够了。所以,我其实是两个混用的。以防万一哪一个挂掉。
zerotier如果不使用moon节点,速度其实和tailscale差不太多,创建moon节点并连接上后,会发现快了很多。(然而,手机版的zerotier-one不知道怎么启用moon节点)
----如何创建moon节点?网上有很多例子,我是参考的这一篇:zerotier自建moon教程 - 方舟基地 (wnark.com)。如果要看详细的,请直接移步链接。
我取了其中的几个简化的步骤:
找个好一点的机器 :
cd /var/lib/zerotier-one
生成moon.json模板
zerotier-idtool initmoon identity.public > moon.json
修改moon.json模板
要记住id之后加入moon服务器全靠他。检查 "id"是否为你vps的10为字符id,可在zerotier网页管理端查看,如果不是说明上一步配置有误。
vi 编辑 moon.json,修改 “stableEndpoints” 为 VPS 的公网的 IP,以 IPv4 为例,记得带引号:
"stableEndpoints": [ "8.8.8.8/9993" ]
生成签名文件
用到上一步中的 moon.json, 执行
zerotier-idtool genmoon moon.json
执行之后生成 000000xxxx.moon 文件。
将 moon 节点加入网络
在 VPS 的 Zerotier 安装目录下(/var/lib/zerotier-one)建立文件夹 moons.d,将生成的 .moon文件拷贝进去。
重启 zerotier,重启电脑。至此,VPS 上(moon 服务器)配置完成。
客户机连接moon节点
其他虚拟局域网中的机器想要连接到 moon 节点的话有两种方法。
第一种方法就是使用 zerotier-cli orbit 命令。
使用之前步骤中 moon.json 文件中的 id 值 (10 位的字符串)分别在客户端机器里执行:
zerotier-cli orbit <id> <id>
完成(一般来说这两个id都是相同的)
[root@idv-36f9d5 ~]# zerotier-cli orbit 3ed7c***** 3ed7c*****
200 orbit OK
第二种方法是需要在 /var/lib/zerotier-one 目录下新建 moons.d 文件夹和 moon 节点一样,将 000000xxxx.moon 文件放到其中,并重启 zerotier。
直接使用Zerotier-cli orbit id id 会更方便一点。
使用fpdf读取PDF文件时,报错:This PDF document probably uses a compression technique which is not supported by the free parser shipped with FPDI. (See https://www.setasign.com/fpdi-pdf-parser for more details)
// USE GHOSTSCRIPT IF PDF VERSION ABOVE 1.4 AND SAVE ANY PDF TO VERSION 1.4 , SAVE NEW PDF OF 1.4 VERSION TO NEW LOCATION
<?php
exec('gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile="'.$srcfile_new.'" "'.$srcfile.'"');
?>
以前没注意过,好象也没有发生过,最近在使用UniApp创建小程序的时候,运行几下就突然出现:[JS 文件编译错误] 以下文件体积超过 500KB,已跳过压缩以及 ES6 转 ES5 的处理。
很烦人,一旦出现这个错误,tab页几乎都是正常的。但无法跳转到其他页面,出错信息是xxxxpage not registed。
在开发者工具上设置过:Es6转为Es5,不启用。uniapp的manifest.json中,对微信小程序也是设置了,上传时压缩代码,但仍然不起作用。
这时候看一下,HbuilderX的运行菜单,运行->运行到小程序模拟器->运行时是否压缩代码,如果没有打勾,就打个勾。
----网上有提示,如果用cli创建的,则需要package.json中增加:
"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize"
--
再次运行,正常了。