1 ncc ncc 打包后发现nodemodules都打进去了,但是比如dll或者其他的文件都在外面,所以后面就是一个index.js以及其他打不进去的文件 最后打出来的index.js 是没有加密的 2 bytenode 编译完会出来一个jsc文件二进制文件, 用bytenode 运行这个jsc 3 pkg 直接打成一个exe,而且运行不需要node环境,感觉怎么和docker一样。。。 原理同事转了个文章,先mark
2024-11-30原文:https://www.freecodecamp.org/news/animating-visibility-with-css-an-example-of-react-hooks/ 译文:前端技术小哥 动画取悦了用户。大家可能会认为,大量的文章表明,React Hooks取悦了开发人员。但对我来说,我已经开始对Hooks感到疲劳。 但机缘巧合下我改变了我的看法。我发现了一个很好地匹配React Hooks的示例,而不仅仅是“新方法”。正如大家根据本文的标题所猜测的,这个示例是一个动画。
2024-11-30uniapp实现tabs切换(可滑动) <template> <view class="body-view"> <!-- 使用scroll-view实现tabs滑动切换 --> <scroll-view class="top-menu-view" scroll-x="true" :scroll-into-view="tabCurrent"> <view class="menu-topic-view" v-for="item in tabs" :id="'tabNum'+item
2024-11-30需求 最近遇到一个需求,需要把用户自定义的函数(不用考虑执行函数的安全性)丢到worker中执行,但是postMessage时不能传递函数,所以要解决这个问题。 办法 解决办法:1、在postMessage时传递foo函数体字符串。2、在子线程接收后用new Function动态函数还原foo函数。 代码如下: 主线程:调用toString()拿到函数体的字符串,然后postMessage传递给子线程。 function foo(a,b){
2024-11-30用户登录界面的测试通常包括以下几个方面: 1. **功能测试**: - 确保登录功能对于有效的用户名和密码能够正确工作。 - 验证输入错误的用户名或密码时,系统能否给出适当的错误提示。 - 检查记住密码和自动登录功能(如果有的话)是否正常工作。 - 确保登录按钮的行为符合预期,如禁用状态直到所有必填字段都已填写。 2. **性能测试**: - 测试登录页面的加载时间,确保它在可接受的范围内。 - 模拟高并发场景,确保登录界面能够处理多个同时登录的请求。 3.
2024-11-30echarts是数据可视化不可获缺的一部分,今天突发奇想搞了一下echarts,出现了一些bug 关于后台传输数据与前端数据格式不对等的问题 前端接收的数据为集合也就是echarts常用的data:[]的样式,但是后台给到的数据是data:[[{},{}],[{},{}]],这样就需要进行多重遍历, 首先第一层遍历需要将里面的集合提取出来,并且给赋值。 第二层遍历里面的对象,对象里面有对应的属性将他给某个定义好的变量即可
2024-11-30选择的日期在另一个日期前(后) 通过使用 disabled-date 实现,官网解释:一个用来判断该日期是否被禁用的函数,接受一个 Date 对象作为参数。 应该返回一个 Boolean 值。 // 开始日期 <el-form-item label="开始日期" prop="dateId"> <el-date-picker type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" v-model="ruleForm.da
2024-11-30标题xmSelect插件: 下拉多选框效果: 实现方法(例子): 将xmSelect插件的xm-select.js文件引入到layui中: <script src="public/js/xm-select/xm-select.js"></script> //xm-select.js文件所在目录 使用方法: HTML: <div class="layui-row"> <div id="demo1" class="xm-select-demo" ></div> <pre id="d
2024-11-30压缩并设置密码: const fs = require('fs'); const crypto = require('crypto'); const archiver = require('archiver'); // 创建目标压缩包流 const output = fs.createWriteStream('demo.zip'); // 设置配置选项 const archive = archiver('zip', { zlib: { level: 9 } // 设置压缩级别 }); //
2024-11-30methods 和 computed 区别 computed 是计算属性,依赖于别的数据,别的数据一发生改变,计算属性就会重新计算 如果依赖的数据不发生变化,计算数据就会缓存在内存中,不会重复执行 computed 和 watch 区别 computed 是计算属性,是自己本身没有的属性,根据别人去计算的出来的 computed 是要return的 conputed中不能有异步 watch 是监视,监视是监视已存在的数据,当已存在的数据发生变化的时候,进行一系列的操作 watch是不
2024-11-30