猫界袁隆平
el-table的合计行如何自定义单元格内容的样式?
el-table的合计行如何自定义单元格内容的样式?
使用summary-method方法可以自定义合计行的内容,但是我想实现合计行的某一列数据小于0则显示绿色,反之则显示红色,"elementUI" (https://link.segmentfault.com/?enc=TTEIWRsTL%2BnpIIqvAaYD%2FQ%3D%3D.0RdTDHvVMsR0PvfF%2F31z7tY9sLA8De8yiROGoAknuuNP2Eko3OGQ6MLwH94VTlM0CUn%2FqavqJJHpGSwsF9Equq4KzjfydkRx9kykNhEs14g%3D)的文档没有给出自定义样式的方法,百度也搜不到,AI也是答非所问
例如"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20250121/c04586e6fb9d0d6aaae4486bb2699274.png)
猫界袁隆平
用户真实的点击操作和代码模拟的点击操作有什么区别呢?例如NodePlayer中对于用户真实事件的监听?
事件对象中有个只读属性,isTrusted,
仅用户操作产生的事件对象"isTrusted = true",
模拟点击"isTrusted = false"
猫界袁隆平
vue2传递个子组件的数据没有更新?
import Tree from '@/components/tree/index.vue'
import {GetOrganiztionalData,GetUserList} from '@/api/detailedList'
export default {
components: {Tree},
data() {
return {
data: []
}
},
props: {
treeUserInfo: Object
},
created() {
this.getOrganizational()
},
methods: {
// 辅助函数:根据部门ID找到对应的部门节点
findDepartmentNode(departmentId, nodes) {
for (const node of nodes) {
if (node.id === departmentId) {
return node;
}
// 如果该节点有子节点,递归查找
if (node.children && node.children.length > 0) {
const foundNode = this.findDepartmentNode(departmentId, node.children);
if (foundNode) {
return foundNode;
}
}
}
return null; // 如果找不到对应的部门节点
},
getOrganizational() {
GetOrganiztionalData({}).then(res => {
if(this.treeUserInfo.erpCode) {
console.log('2222')
this.data = [res.data]
const id = this.treeUserInfo.erpDepCode
this.getUserInfo(id)
} else {
this.data = [res.data]
}
})
},
getUserInfo(id) {
const departmentNode = this.findDepartmentNode(id, this.data)
if(!departmentNode.children) {
this.$set(departmentNode, 'children', [])
}
const obj = {
erpParentCode: id
}
let array = []
GetUserList(obj).then(res => {
res.data.map(item => {
array.push({
text:item.erpName,
erpCode: item.erpCode
})
})
departmentNode.children.push(...array)
})
}
},
}
这是我写的代码,走console.log('222')的时候,传递给子组件的 data数据没有,应该怎么解决
子组件代码
export default {
data() {
return {
defaultCheckKeys: []
}
},
props: {
data: Array,
keys:String
},
methods: {
handleExpandClick(node,data) {
node.expanded = !node.expanded;
}
}
猫界袁隆平
如何实现https的自动部署?
在服务端做一个https自动部署的功能,需要打通哪些方面的服务?求支招!
猫界袁隆平
vue2封装的业务组件获取数据的方法到底是应该在父组件里调用然后传数据进来,还是写在业务组件里,created时调用?
如果业务组件使用比较频繁,要抽成公共的,那么它的获取数据的方法如果不放在业务组件内,是不是意味着每次调用的时候都要写一遍,感觉会很恶心。但是如果写在内部,调用它的父组件应该在什么时机调用它?以及以什么方式调用它呢?
猫界袁隆平
如何实现下图的效果呢?
"Snipaste_2023-09-25_08-08-59.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241221/1247e70fdfbfeb083e5cdd3f30318e39.png)
猫界袁隆平
如何充分利用多个计算机资源?
上边的例子好像只是涉及到了文件资源共享, 无盘启动是个办法, 现在的无盘启动只要硬件水平够好, 已经是无感的了. 如果是计算资源,
一个计算任务把它分配给不同电脑上的CPU进行计算这种情况, 得在任务分配调度上下点功夫了, 现在很多边缘计算的例子和论文可以参考, 把计算资源分块,
然后再分配下去, 但是这种情况仅限资源比较容易分块.
以上观点未经查证, 仅为个人观点
刚刚查到的一段话:
通常,这种设计的集群是用来开发并行编程应用程序,以解决复杂的科学问题。并行计算(或称平行计算)是相对于串行计算来说的,并行计算能力的目的是用来提高计算速度。它实际是一个计算机集群,其处理能力与真的超级计算机相等。
我听过的一些情景中多机集群,的确都是解决一些科学问题, 日常的一些单一业务多机处理没有涉及到过了
猫界袁隆平
百度地图api DrawingManager 鼠标画图工具问题?
地图上绘制的东西都是覆盖物,覆盖物的删除就使用"map.removeOverlay(xx)"或者"xx.remove()"
重点是怎么设计这个删除的动作,比如有一个覆盖物列表,每个覆盖物有一个删除按钮,点击删除,比如在地图上右键点击覆盖物出现菜单,菜单中有删除按钮,或者直接双击删除等等。
覆盖物的鼠标事件参考"https://lbsyun.baidu.com/jsdemo.htm#kOverlayAddEvent" (https://link.segmentfault.com/?enc=5J7ske927iWBim%2BUFjAk5Q%3D%3D.DRA2fWRM9s8xLjwsm6gExouISvWLpGvYewfrEilkW%2BIlQ6KD5IX1hDcS8relia5VKynlaIKc%2BYegZcY4KkxorQ%3D%3D)
绘制完成有各种complete回调函数可以获取收集当前覆盖物"https://api.map.baidu.com/library/DrawingManager/1.4/docs/sym..." (https://link.segmentfault.com/?enc=Yxgl0GYXZTotF8clokVpMg%3D%3D.cZpxXK%2B%2BqgSIWDU9k4AKs2hCvMzpeByjWNKkFWFC9azCK4z0YPRjpS%2Fi1X3ZAr1yE4Zr2iDDWXz1cO5TKLNizlUnvwz7TI7w%2FxDbMSiJ3g2798nqVSiWi3R60vRDesKo)
或者使用"map.getOverlays()"获取所有的覆盖物,根据某一属性判断是不是绘制的覆盖物?(需要看有没有这种属性)
猫界袁隆平
用Typora软件 ,使用markdown编写 文章 标题序号 自动生成的问题?
你不应该硬编码你的标题序号,这里写的是
markdown,应该由最终的渲染器去确定标题序号,而不是在你写文章的时候就写死,你目前这样,自然是没法实现自动处理的。不过 typora
可以自定义主题(使用 CSS),你可以编辑主题对应的 CSS 文件,"使用 CSS
来给添加标题序号" (https://gist.github.com/patik/89ee6092c72a9e39950445c01598517a)
还可以利用 pandoc
* "Are numbered headings in Markdown / Rdiscount possible? - Stack Overflow" (https://link.segmentfault.com/?enc=dI1rWS458Jg8Py2elB%2FVjw%3D%3D.V8%2BfT7Y345N%2FONWa9kI0LZH3Vz532dGpE19nKYxMygmEDhJ00%2Bhkr3ytmMqoK76l5b8hUjZvn7aWXGBoT%2Bhce5EfuFks44d%2BLgqKflnVLeFAydeXi8oBwMtf7j64wRNIks8vad2tqU1ETxb4uMOWVQ%3D%3D)
* "Numbered Headings in Markdown via CSS" (https://gist.github.com/patik/89ee6092c72a9e39950445c01598517a)
***
意外的发现,官方的"文档" (https://link.segmentfault.com/?enc=WefWMtniFoIRHsfL0Ocjxg%3D%3D.gmRVp8rJAKBPwuxNTb9mfpOgYXsK7Y%2Fim%2B%2FUlJT9VcNCciRdIsnt4RgTJk1PuMxV)里面居然是有相关内容的。
* "Auto Numbering for Headings - Typora Support" (https://link.segmentfault.com/?enc=0nMZJzHYwBaqliY4%2Frf%2F8A%3D%3D.ZQ9iO1JDW8pCnR6%2F0gS5nMCF9uR1eJvPvxpkpj3a7rQzatTLZKbaz57tawuu7BqU)
猫界袁隆平
在set了useState之后,如何保证代码在由set引发的useEffect之后执行?
这其实是一个组件设计上的问题,用于渲染的表格数据只需要有一份即可,通常作为根组件的 state 是没问题的。但你这里子组件又维护了一份
state,对于组件的渲染来说形成了一个双数据源,不仅容易造成你描述的这种问题,也无端增加了开发过程的心智负担。
正确的做法是 "子组件" 直接使用父组件传过来的 list 去渲染,不用再存一个 state,如果存在子组件需要更新父组件的 state
的情况,应该从父组件传一个用于更新的方法给子组件。
总之保证 "渲染数据的单一性" 以及 "更新数据方式的唯一性" 基本上就能避免这种问题的出现
比较简单的处理方式如下
// 父组件
const Father = () => {
const [list, setList] = useState([])
const getListData = async () => {
// 请求获取list数据
const res = await getList().catch(() => {})
setList(res.data)
}
return ()
}
// 子组件
const Son = ({list, setList, getListData}) => {
// 新增
const onAdd = async () => {
await getListData()
setList((prevList) => [{空行数据}, ...prevList])
}
return (
新增
)
}
猫界袁隆平
CSS问题,这种怎么做到?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241214/db32a8abad12f01728c8c4e2a1cd115d.png),文字前面跟着已到期或者即将到期,但是这段文字是右对齐,且以最长文本的长度作为整个盒子的宽度,并设置背景色。
猫界袁隆平
对索引字段频繁大量的更新,到底会不会引起索引本身性能的下降?
这种情况下定期做索引重建,是一种很好的解决办法吗?
猫界袁隆平
react如何生成安全检测评估报表pdf?
背景太少,这跟渲染框架没有关系。
两种思路:
* 数据在后端,后端生成文件,前端调用接口下载 pdf 文件
* 数据在前端进行组装后,前端根据数据生产预览,然后使用 pdf 生成插件进行下载
猫界袁隆平
企业是怎么大量存储数据的?
额,你的思维局限性太大了,可能没有做过运维或者接触过网络这块的基础知识吧。
有一种存储系统是分布式存储系统 ,可以通过网络链接多个磁盘阵列,通过一定的算法合理的分配存储内容到后端的磁盘阵列中。
可以百度查一下相关文章。
例如:"https://www.51cto.com/article/600537.html" (https://link.segmentfault.com/?enc=hUS8sPamDjBPQ4jpKPa7zg%3D%3D.80KjapG5eyWWA%2FmRUwBC0i3jm78LOeQ44x04RxfOi6XKkDco4lA0NyRRDxATIyPZ)
猫界袁隆平
pinia里面不能用vue-router的内置类型RouteRecordRaw?
这是一个 pnpm 的 Feature 引起的 Bug。
简单来说就是 pnpm 默认只会把你 package.json 里声明的那些依赖安装到 node_modules
根目录下,这就避免了所谓的“幽灵依赖 ”问题。但有的时候 TS 的类型自动推断却需要这些幽灵依赖参与(比如你这里就是需要
"@vue/shared",可你又没显式安装过它,所以报错)。
目前来说的话解法就是你显式去安装一下这些缺失的依赖。
«"https://github.com/microsoft/TypeScript/issues/42873" (https://link.segmentfault.com/?enc=u83sus2da9B%2FtZfOKfLfMg%3D%3D.qKcbCkrvGrFdCPbyVdc2ld0KqxoQHyKxvbCNxlC25BkYZON5JzFRQD5kjZoTarIpV5CqHfpC%2B7%2BoIBYozGimvQ%3D%3D)"https://github.com/microsoft/TypeScript/issues/47663" (https://link.segmentfault.com/?enc=nHY8FSRI4gPd1SUqlf3vow%3D%3D.g0j0zxFTbdwdSZFFjDfAyO4Uu32u5v0DXuFXilejlDgMRZCr9%2BwGhke%2BVrNbbe5jFZMLhtVLh97Y%2FnLHMMtO1w%3D%3D)»
猫界袁隆平
实际项目中使用 jenkins 的多吗?
* 自动化构建和部署,开发者本身只需要关注项目功能是否实现就可以,但实际上还需要关注项目部署问题,它本身就是一个比较繁琐和重复的过程。
同时部署也会出现很多问题,包括环境配置、部署失败、部署失败的错误如何上报、部署环境如何隔离、部署失败后如何通知到相关开发者、项目代码更新后单元测试如何触发运行等,这些问题在
jekins 上都有比较规范的解决方案,这样做目的就是 CI,CD,CI 保证代码的稳定性,CD 保证项目的下游人员
(测试运营)可以及时获取到项目最新的部署版本。
* 可视化和监控,jekins 跟 action 都有对开发友好的视图去展示部署状态,没有这些工具,开发人员只能通过终端,以及 linux 命令去获取服务状态。
猫界袁隆平
vue el-input数据处理问题?
无语,ticket_id你是不是定义的是一个数组??其实你可以定义字符串,提交的时候再判断它有没有值,有值的话转数组。。。你这个是数据类型的问题。。。就好比el-date组件里面使用2个日期,你定义字符串,会报错的,它要求是数组。。。。大概是这个意思,你的明白?你不明白也没有关系,我自己整的也不会了
猫界袁隆平
有哪些 web 代码编辑器(react、文本高亮、补全、虚拟列表、搜索、可扩展)?
Meta的Draft.js,inyMCE富文本编辑器,React Textarea Code Editor、Ace Editor 或
CodeMirror,这几个吧
猫界袁隆平
Java 中如何给POI生成的Excel文件添加 Border?
补充一下上面AI中的Main方法:
/*
https://demo.grapecity.com.cn/documents-api-excel-java/demos/
addingborderstorange?devLang=java
*/
// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
IRange rangeB2_E6 = worksheet.getRange("B2:E6");
//set left, top, right, bottom borders together.
rangeB2_E6.getBorders().setLineStyle(BorderLineStyle.DashDot);
rangeB2_E6.getBorders().setColor(Color.GetGreen());
//set inside horizontal border.
rangeB2_E6.getBorders().get(BordersIndex.InsideHorizontal).setLineStyle(BorderLineStyle.Dashed);
rangeB2_E6.getBorders().get(BordersIndex.InsideHorizontal).setColor(Color.GetTomato());
//set inside vertical border.
rangeB2_E6.getBorders().get(BordersIndex.InsideVertical).setLineStyle(BorderLineStyle.Double);
rangeB2_E6.getBorders().get(BordersIndex.InsideVertical).setColor(Color.GetBlue());
//set top border individually.
rangeB2_E6.getBorders().get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Medium);
rangeB2_E6.getBorders().get(BordersIndex.EdgeTop).setColor(Color.GetRed());
// Save to an excel file
workbook.save("AddingBordersToRange.xlsx");
猫界袁隆平
用system函数调用bash指令会显著降低C的效率吗?
Hello!.
我在程序里写了很多类似
system("echo 123 >> 1.txt");
这种,来代替本来打开文件进行读写的代码.
我开始担心这会不会降低程序的效率?相比起直接用C的API进行文件读写.
猫界袁隆平
vue项目中使用Video.js 切换倍速时报错 this.player(...).playbackRate is not a function 错误代码位置在依赖源码里 怎么解决?
vue项目中使用Video.js
切换倍速时报错 this.player(...).playbackRate is not a function
错误代码位置在依赖源码里 怎么解决?
"1694583481361.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/2842ed1d6a1860e85ececfb468d49061.png)
"1694583507072.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/636775dcda6e60d17149728b733beedf.png)
报错位置指向6319行
而且还有个小问题 我复制一段源码
去vscode里搜索 搜到有七八个地方
我挨个添加了console.log 但是仍然不打印 是什么原因?(在代码出错那一行前面打印的)
猫界袁隆平
为什么这段代码运行的时候点击部件会出现错误?
1.Position_BaseRod 不存在时,赋值必然失败.
2.Position_BaseRod 存在, 但没有position属性 先给position赋值
Pivot_BaseRod.position = {};
Pivot_BaseRod.position.x = Position_BaseRod.x;
Pivot_BaseRod.position.y = Position_BaseRod.y;
Pivot_BaseRod.position.z = Position_BaseRod.z;
猫界袁隆平
前端页面如何拦截?
如果只是校验token是否存在
前端校验即可 路由守卫做处理就可以 静态页面可以拦截
如果还需要校验token是否有效
路由守卫就做不到 只有通过接口交互 静态页面不可以拦截
猫界袁隆平
为什么用@抑制符不能隐藏错误信息?
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241116/fdb726cfcd33ead48a32c35c4acbac0b.png这里我想连接数据库,然后特意输错了里面的登录信息,然后我用if语句,按理说如果输错了信息,应该提示的是我if语句里面的错误,为什么系统总是报fatal
error,是我一开始的配置文件出错了,还是哪里有问题啊?有谁可以教教我不?错误抑制符也没用但是如果我输入正确的密码和相关登录信息还是可以正常使用的)
希望可以按着if语句里面的结果来显示
猫界袁隆平
echarts如何实现一个图例legend显示两种颜色?
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241116/e8c6c4c3ab13158e9b6ee44c4a9f908a.png
echarts如何实现一个图例legend显示两种颜色?
1
猫界袁隆平
vue 参数拼接没有值问题?
用 Vue.nextTick :
handleHighSubmit(data) {
this.serverData = { ...data };
this.$nextTick(() => {
const new_str = [this.form.server_str, this.serverData.highServer].join(',');
let params = {
choice: this.choice,
filter_condition: {
server_str: new_str,
...this.form
}
};
console.log(params, 'params---');
this.getCoverUsers(params);
this.handleClose();
});
},
猫界袁隆平
JAVA RuntimeException 异常一定要在源码中有 'throw new xxx' 才会抛出吗?
是,但不一定是 java 源码
因为最后运行代码抛出异常的是jvm,一部分异常是 java 代码抛的,还有一部分是 jvm 自己抛的
比如下面代码会抛的异常都不是在 java 代码里写出来的,看源码也看不到抛出异常的具体位置(但是看 java 代码的位置就足够了)
class Scratch {
public static void main(String[] args) {
// test(1, 0);
// test(null);
}
public static int test(int a, int b) {
return a / b;
}
public static String test(Object o) {
return o.toString();
}
}
猫界袁隆平
有没有好用的Git代码统计工具?
可以用Gitlab的统计分析
比如 按照人统计
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/e5fbb91a324d88db5453c5d4dcdcdec8.png)
比如
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241108/be49468e5804386ef3b6ee1aa2c973e1.png)
猫界袁隆平
为什么这种情况 vue3 watchEffect 会触发?
setup() {
const obj = reactive({});
watchEffect(() => {
console.log(obj);
})
obj.num = 3; // 触发 watchEffect 回调执行
},
reactive 收集依赖不是要通过 Proxy 触发 get 吗,为什么这里只是打印 obj(没有触发 get),也能够收集到依赖?
猫界袁隆平
Vue Router * 通配符和正常地址的冲突 ?
const routes = [
// 先定具体路径
{ path: '/login', component: Login },
// 其他具体路径...
// 最后定通配符路径
{ path: '*', component: Home }
];
猫界袁隆平
js如何实现轮播N张连续图片实现gif动图效果?
暂停
继续
export default {
data() {
return {
currentIndex: 0,
imageList: [
'url1.jpg',
'url2.jpg',
'url3.jpg',
// ...
],
intervalId: null
};
},
computed: {
currentImage() {
return this.imageList[this.currentIndex];
}
},
methods: {
updateImage() {
this.currentIndex = (this.currentIndex + 1) % this.imageList.length;
},
startCarousel() {
if (!this.intervalId) {
this.intervalId = setInterval(this.updateImage, 100);
}
},
pauseCarousel() {
clearInterval(this.intervalId);
this.intervalId = null;
},
resumeCarousel() {
this.startCarousel();
}
},
mounted() {
this.startCarousel();
},
destroyed() {
this.pauseCarousel();
}
};
.image {
width: 100%;
height: auto;
}
猫界袁隆平
小程序建立用户与数据的联系,运行代码后报错如何解决?
db对象没有正确引用,解决方法:在Page()对象前加代码const db=wx.cloud.database()即可以解决。
猫界袁隆平
A, B, C的正确性确认?
我试了一下A,B,C都正确,大家看一下是这样吗
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241102/b912d1a6aa41131bda0adf6bd631e38e.png
B,C是否都正确
猫界袁隆平
VirtualBox 安装的 Home Assistan 中使用 Terminal 安装 HACS 时,报错 connection refused 如何解决?
目前的解决办法是,使用 "samba share" 本地下载安装,应该也可以通过给虚拟机配置代理来解决,没有尝试
猫界袁隆平
如何使用inotify获取文件名及目录结构?
inotify监听文件目录下文件夹及文件创建,如何获取文件名及目录结构
需求是监听摄像头上传的图片,将图片路径存储到数据库中,目前使用inotify监听文件目录实现了文件名的获取调用PHP脚本并存储成功,但是图片完整路径存储还没实现
猫界袁隆平
vue 如何将组件中的 html 代码提取为模板方式定义在组件中?
vue 写了一个弹框组件 ,业务代码比较多,其中大部分代码(html)
是比较通用的,本来想提取成组件的,但是由于有很多属性和事件,显得非常麻烦,所以想着如果有一种方式,能够把这大部分代码以变量的方式,提取到当前组件中,那么组件需要和属性、事件关联的代码就不需要做多余的处理了。
将 vue 组件中的 html 代码以模板方式提取到当前组件中,方便不同地方引用
猫界袁隆平
阿里云国际ECS安装AMH问题?
阿里云国际的1核2G内存的ECS安装AMH
wget --no-check-certificate
"https://dl.amh.sh/amh.sh" (https://link.segmentfault.com/?enc=EbthUJgQFmzqaHVtKTN4QQ%3D%3D.dSSml%2FY24adx66DAaLsOpL5%2BcQiPeOmxZgiGQt52COg%3D)
&& bash amh.sh nginx-1.24,mysql-5.7,php-7.4
安装五六次了每次都是到这里就没反应了,等十几分钟都没有进度
[ 75%] Building CXX object sql/CMakeFiles/sql.dir/item_cmpfunc.cc.o
[ 75%] Building CXX object sql/CMakeFiles/sql.dir/item_create.cc.o
[ 75%] Building CXX object sql/CMakeFiles/sql.dir/item_func.cc.o
也虚拟了4G内存
dd if=/dev/zero of=/swap bs=1M count=4096;
mkswap /swap;
swapon /swap;
echo "/swap swap swap defaults 0 0" >>/etc/fstab;
请问大神怎么解决啊?
求方法
猫界袁隆平
如何将非静态函数作为参数传递给函数指针?
想将函数指针作为参数调用,却发现必须是静态指针吗?
打个比方,我写了一个树类Tree,其中包含树的根节点.每个节点都记录了自己的儿子.
其中有一个dps函数,第一个参数是要遍历的节点,第二个参数是要对该节点做的事情.
class Tree
{
Node * root;
void dps(Node * t,void (*work)(Node * n));
void work1(Node*n);
void work2(Node*n);
void work3(Node*n);
//...
}
这么一个结构.
但我试图运行"dps(root,work1)"的时候,我发现它要求work1必须是静态函数?
而如果我把work1设置成静态函数,它会很麻烦,因为它还使用了Tree类里的其他成员.
这种场合我该怎么做比较好?
猫界袁隆平
如何从 HTML 中取出某 JS 变量?
分类讨论 硬编码值("Hardcoding") 和 环境依赖值("Environment-Specific")
简单先陈述一下,按照题主展示的那一部分的代码情况:
如果要获取 对象数据 推荐使用 2.词法分析
如果要获取 "window" 等运行时才存在的变量 只能 使用 3.环境编译
如果嫌麻烦,可以直接使用最后一种方法,因为是实际运行后获取数值的,所以也是最 通用的
那么下面开始具体分析方案
硬编码
即在静态的代码中定义的变量,这种相对容易获取,使用词法分析、正则或者其他字符串匹配方法都可以(相对推荐的是 词法分析框架 ,比如 "slimit")
1.正则(简单情况)
字符串匹配,不适合应对代码复杂的情况,但捕获简单的赋值语句还是相对容易的:
import re
js_code = """
var example = "Hello, world!";
let anotherExample = 123;
const MY_CONSTANT = true;
"""
# 匹配 JavaScript 的变量赋值
matches = re.findall(r'(var|let|const)\s+(\w+)\s*=\s*([^;]+);?', js_code)
# 输出提取的变量名和值
for match in matches:
print(f"Type: {match[0]} - Name: {match[1]} - Value: {match[2]}")
最终的输出结果是:
Type: var - Name: example - Value: "Hello, world!"
Type: let - Name: anotherExample - Value: 123
Type: const - Name: MY_CONSTANT - Value: true
2.词法分析
这种方式会真正意义上去 解析 "js" 代码,抽象为 "AST" 语法树,从而应对复杂情况,比如 "slimit" 框架
这种情况比较适用于捕获复杂的数据类型或者在复杂语句结构里的变量
from slimit.parser import Parser
from slimit.visitors.nodevisitor import ASTVisitor
text = """
var x = {
"key1": "value1",
"key2": "value2"
};
"""
class MyVisitor(ASTVisitor):
def visit_Object(self, node):
"""Visit object literal."""
for prop in node:
left, right = prop.left, prop.right
print('Property key=%s, value=%s' % (left.value, right.value))
# visit all children in turn
self.visit(prop)
parser = Parser()
tree = parser.parse(text)
visitor = MyVisitor()
visitor.visit(tree)
环境依赖(通用)
如果需要捕获一些运行时才存在的值,比如 "windows" 对象,"BOM"、"DOM" 等浏览器接口,那上述做法都没办法生效了
只能考虑运行一下本地浏览器环境获取(比如通过 "selenium"),使用前记得注意浏览器驱动与浏览器版本,还有 "selenium" 的版本,我的是
"4.1.1" :
window.forTest = 10;
let num = 2;
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
# 我的谷歌浏览器不在默认路径,所以需要配置,其他浏览器也有配置方案,参考官方文档即可
chrome_path = r'D:\Google\Chrome\Application\chrome.exe'
o = Options()
o.binary_location = chrome_path
driver = webdriver.Chrome(options=o)
# 可以是绝对路径,也可以是 url
driver.get("file:///xxx.html")
# 获取 JavaScript 运行环境中的变量
window_forTest = driver.execute_script("return window.forTest;")
u = driver.execute_script("return u;")
print(window_forTest)
print(u)
driver.quit()
猫界袁隆平
AMH 主机面板规则管理页面点击环境列表出错,怎么办?
新版本的php确实有这个问题,
这里的环境列表一般用不到,基本上功能都在默认的『规则管理』页面。
也感谢反馈,已经记录等amrewrite这个软件提供升级修复。
猫界袁隆平
python 我是用的是分组非贪婪匹配 正则匹配,为什么匹配结果少了7?
正则的.表示任意字符,如果中间匹配字符点使用转义.
按你的做法去掉点,期望值怎么还会是.jpg呢
不需要去掉点的话,这(.+?).(.+?)又是莫名其妙的做法
猫界袁隆平
求css自定义resize符号的方法?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241014/2a4dd4ee6332cb3b6aae90fcc4e918c1.png)
求css自定义resize符号的方法,目标是跟背景色统一
猫界袁隆平
将rawfile中json格式的字符串转换成对应的object对象后,调用实例方法后程序崩溃?
问题现象
直接报错:"jscrash happened in xxxxxxxxx",crash日志中错误信息:"Error message: Unexpected
Object in JSON"。
猫界袁隆平
为什么Vuetify 在自定义侧边弹窗中刷新进入时页码没有缩略?
组件是vuetify,做了个带transition效果的侧边弹窗,放了个表格和分页组件,但是刷新页面第一次进去的时候,分页页码没有缩略,"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/d2b3807513617d61ac7ac3b1947da9a6.png),多的话直接遍布整个网页,但是当我缩放网页或者随机点击某一个页码就会恢复正常,给v-pagination设置total-visible,设为6,感觉是宽度没有做限制的问题,但是侧边弹窗做了宽度限制,分页不应该自适应宽度吗,实在找不出啥原因,求大佬们指点迷津!!!
设了多个宽度测试,不得
猫界袁隆平
如何在Vue中使用path模块不报错?
在vue中使用path模块提示“...resolve is not a function”?
我在vue中引入了path模块,使用了 path.resolve(...)函数,代码和浏览器控制台提示如下:
"QQ截图20240202014455.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/cadd1b56e04a2ff1711d148c122c1895.png)
这些代码我其实是参开了开源项目vue-element-admin ,人家的代码也是这么写的,可我写的为什么就是报错?
"QQ截图20240202014659.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241011/6ec86f254b191b8cda51c43a6bbc9551.png)
猫界袁隆平
大家新年好,请问微信小程序 如果想做成多语言的,一般用什么语言包?
大家新年好,请问微信小程序 如果想做成多语言的,一般用什么语言包?
一些简单的语言json配置,然后切换不同语言的,这种手动配置的方法,我大概知道了,只是我们公司商品产品很多,请问有什么那种现成的多语言json包可以用的?
猫界袁隆平
vite打包的vue 库在uniapp上无法使用,如何处理?
检查一下页面中使用uni.xxx api的时候是不是被自动引入了 'import { uni } from @dcloudio/uni-h5' 语句
dcloud 论坛相关问题
"dev mp-weixin
出错,怎么处理呢" (https://link.segmentfault.com/?enc=NN9U905YpRzkiCOMdU07fQ%3D%3D.ncP2kinKPdPJhKEiXFY3v6jMFGxGHfU8SaKB%2BJa1WAUgQdBcwkJ7P%2FtNckdGrRZx)
猫界袁隆平
求助编程学习做笔记方法?
其实记笔记也得看内容,电子笔记不像我们学生时代的在书本中记录的笔记。更像是独立存在的文章分享。所以很多时候我们写笔记的时并不需要把所有的内容都记录进来,特别是概念性的东西,比如说OP你提到的各种标准和理论知识点详尽的记录。很多内容都可以借助超链接的方式来记录,只引用部分内容,比如说上下文会提到的或者借用到的部分。
你也可以看到"我的笔记" (https://link.segmentfault.com/?enc=efll3iQDw%2FjjCBJt%2BCQ8yw%3D%3D.zapNFqahHEXD%2FDFaal9CyEbzKeDL%2FR4jIU%2B7E5GLMTY%3D),其实就很简单,每次只记录一个知识点或者一个踩坑的经历。不是一次性写出一篇几万字的长文章再发布出来。但是日积月累就慢慢的写出来很多有意思的东西了。
不要有完美主义的想法,也不要为了记录笔记而去写笔记,就是很简单的记录自己的成长。
***
之前很早的时候看到一篇文章,但是记不清是不是这篇了,你可以借鉴一下她的写作想法 👉
"技术写作的“坎”" (https://link.segmentfault.com/?enc=C2SZwy47diqmSScWrgc%2F0Q%3D%3D.1mgUKSU4wy8Si3gB23RX6MCfCxIGugOmI0udk7EwSBck2tMoFYO2mNDHrWgLM2HRRdYzcdR%2FElMpxfKOkwdS1g%3D%3D)
猫界袁隆平
热点数据筛选优化策略?
热点数据怎么筛选?
如题,存在这样一个场景,上游系统和我们系统之间存在通知+定时轮询的机制去同步某个账户的流水。其中定时轮询的批量高频率执行,因为里面大部分账户做同步的时候都是没有任何数据的,上游系统就骂人了,由此打算从中抽取一些热点数据做同步。
现在的想法是在得到通知的时候维持一个redis缓存,定时轮询时看缓存中是否存在数据,存在才同步否则不同步,然后再做一个慢一点的全量同步定时。具体实现是在redis中维持一个没有过期时间的zset或者set,同时往这个set添加带过期时间的账户,将redis的内存淘汰策略设置为带ttl的lru。
现在的问题是,由于账户数量较大,单纯设置一个set肯定会存在bigkey问题,而且不清楚内存淘汰策略会达到怎么样的一个效果,如果缓存的账户数量很多,那么和全查区别不大。
所以请教一下,请各位不吝赐教
猫界袁隆平
如何解决在使用Naive UI Upload组件时 file.name 为 undefined?
抱歉,是我误将 ({ file: UploadFileInfo }) => Object 当成 (file: UploadFileInfo) =>
Object 了,已解决。