复古直男
如何找到 Acro-Design 的 acro-scripts 源码,是否已更换仓库?
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20250121/8ae0c4ff3e95086dadf424b424e2c980.png)
看acro-design源码里有arco-scripts,但是去找源码发现只有npm包,源码未曾找到,现在是更换仓库了吗
搜索引擎未找到相关信息
复古直男
React中为什么 dependency 每次渲染时值相同的情况下 useMemo的参数函数会执行多次?
"demo" (https://link.segmentfault.com/?enc=PGmEzFTWQVIoz3Y5RI0QaA%3D%3D.X%2BFpXZkRabjq68PzDvyBnAq2cShTd8o8kf6KtC2Flpe7YeSIsy3RXGciRKlLPLmS4jDYxomL0CdwT9hVpP64Cglq1QL7D7V7EXfv6P5RwDJy2ZJu%2BUyTNzSPW64NykD%2FvglEbjkrZsDAF3Xjz3udnCGa4L0hG8llBhSxvG6j9LF7eNBJE4nGNnRMIag41LMS%2FAmsBVFwExxCZzRRx5zPkBIYBW53AEMV3uuf8FyLqkC8XhQP06E5TMeyBJlIKe1y%2BUVxIvUoIFJ0wLFYDDLYobZ6tEF512zqh01B6ZQB3z5V%2F2wTiF6oBWrcy1CWeoHQFDO09x1BXY5NAa5YJLRLwHWOkUmfLQBGcyN8eCj5VVXr%2BwfMZxANpOjDNxkjbmxTvyCGMEmEwgk0XFGNkZI3EoWLjOcrMd9VxUGfxYil7Xxv40ZBiGktpFDRG8sO6EOApRtRa3j3qmlj4K4AaZ5N%2FKe85VPyG%2BwtE%2FCEHf2jhDfk63JTxXmU5zDUyem5tlGDVPpWOrQm%2B0e1KAi%2FOLKUdKzDX3%2BtrcKeZ%2FB5632iXFk32ipv5LbctQXlCvVCS33Vcgk5V0HUbL74DvV52%2BNZdDLhufMg2ND9ZeLrmgRrHeRUNJZZesxZacHCN%2Fy1JoDqJWV54Lagub19Y8L1BExu6xMUzHPoAu1aqEbnvcGcNdaB4NNbxAIoadxCbhOrpDM%2F%2Bzge4zP9RzNbWZ7o1%2F%2BaB1d4y63NXiT767wlEyEB9M7I1JbtPBoCp4rWSGb7nn5gheDsSAl5jOOfvbtQWMaqhQKCK8we9lxxPVcM87DJm6mGTPO6r9GxKTuU5KaEUSusi%2Bw97%2Fe2zZ3swP%2Fq384aUfvOhMnHLpTJ4jL01j77YIyVPfADAIPet5o9zZfzkqOOokb%2BAeuN65U9fLaP3X6bGpYj67GhhgDZGXALaS15m0k7Twrb%2Feb3TmowwSU0VGTbDUG22e2giaE2ox6U2YKCxym1I8v0gtCO5HPbYOXLipNmm1XYvJHTtEz6efI2yKSHvbVSqW1%2FUMHJZthMf7TLLo5rfE2BglnH1FHq%2Fm%2F7ztryWivcfGPnwczRIm7nQlH7Wp%2FFd6rzc9h0UFte4zwoVuueuJec7rh2mEPIWhFaF9HefkQAGJwFia%2BuXc8O8O%2BE%2FjqrYdrTsVJyUrm0IAsCxUaxAloCosfjcyFNeOjhw0G9QUATjdmeghrSqVqQ3RpaDMMU4J8wRyUBgYRA7M4riGJL%2BLDhgl3utcGXXdPTnO8%2B8EU%2FY6EBhFzJ4zE%2BiI0F0zH0MzvSqLBurXL3Pj5AeQ8lwQ62ZWnnWkYrvbDj1PEZaNfz%2BgD%2BtQpifcsgtwBUa6eHT3vjK7w68HYZjeuJI26cy8G1JK4TZedpN%2FehxyjdZ8wT3Uezx7tKCx71LQZhstOiaFtIhk2KaBNIQ5VXxYjheH9UwA6QLMpd0DDbbB%2BIUdTtS8YNJsWB20hNp9WsSwj1O8kTMxcdD7M%2F7bDy02Vkh0lZGNnI3bFxU2elTui46%2BJFT93sM4LJgGBOnOb%2B57Gt%2BQF4BW7SMfqU%2FpHQa0Ge9cDM1q7hX6rsqTkXevUtNjnP9VywplEqgZJh7f47HLHwj2VqxI0nhcp%2BJ1XAFpeh%2B8IkKKH7T4K4OD7xz7J0h2Vii58a7L0%2Bm0j%2FBeGbQ8rSQtsb7t5dyg6cIzk9IbNdeK346MKy1RCrWPZBeSnRHzuP9aY2vV04tVJOQIwUvrbhwzVoy8d6y9eh1buRzFjOyGc9TX8WNiIim3Nezg8Wvs1YvOYMwVVGZKORJ37SR4gGTVMIZH9rrXRUFqXsm2Bq9%2B%2F7%2BJH6n0l0a8TDiAFOkg5hOAqqDNiA7MRn6E15a44JpsfQGdDCt8rhR%2FiIxTSb%2BcLRUM%2B0ynYHgJ%2Fx%2FV6r5SGvDhMXNKzYezEwjCDTEVSce95%2BlxR1px5IGbECyjSjWojOBoehi7WbG0WdgxMzXaA%2BoHFXuHGdIVaGrJwjvniMNAVYXi%2BIuu7MvqcJBapgBVwDvXMGDAdiI6406goL2UF5gAhhjGGN5C8Za7J5YT9rA7D3faKxrwhpr2Pg%2Bi4%2FtwqHrJJccng%2Bm8xXGWkMxAeA9IIrUqoFr5pZciTw4QnNfmYTPOEDN5lEHa3ZLw03TqZe2%2BEu%2Fs%2FZWGtTPL34P7J8v1qDMTJ5VU2AgDO4FdqSOAC3d7QeGGmWxG70suJBIaUZ%2FmEcE2WS1Z0TaviAlI0nYMmzP%2FmlkJihpjTNI%2BAaCTXznK2k76ZCHk%2FHebC3Rff9AkLLOxlIz4%2FWXt2pIPjMes8fmM8fAIxNrEVmL%2FN4I2M2nNE53F%2BDDKs9sXoGg7nT%2Bh2ERWCHlNqIPmeN8OTMWOPtU3PwajyKH%2FUlOqCC%2FHtgnOyLMck7thv6PZTlkDkFvEYKcXkWp35h24pw4oFe1ixupCXxIbV%2FkeN6bIJo9qDmZMCwsKi8DvJeSMbGPJLburh8sMja%2BRKIX6PgwSnGfz2QkjyFfAM9vCMLqXEojAwHkZSKyv0poD7PyX0yk0tJQ3fjDM%2Bx%2BUKlXP%2FVtvxyHY3HAQUhqyU9rQuKwF%2BVJE0W4E%2FiSyVMgo4znfkyNCy7pJ7QNfNaVKyBKSWWF0G2XLi96H2Tdm9ZY1ZKPinkOVpXS4SAZ4qsQswkReWVr5KrDDoNd%2BXZC9T7ok4FTzwVFaNKZwDl4VO9JBOUmTsJJTGXzxTXsWlt9fHNb5zMqFilVOIX%2FzfsHfDdOaQGLMyeQ96j4ut6%2B6QN0oA1Zc7DyRMEwr8IMn53KkylsXbse0j3axtWZG2xPIs%2BYgvbe3ij80PdzP3QKMv9SFb6Lw9iCRLyqoDHNjwIhDakSt19iYS3141mNpiJxYKbPTvl%2F6pMc1SmFcGTeKcjH5ICI4zz1Z1AH%2BvzF2BJCRXoQrgslQyhVDLxZMclGYzyqrqOOKfyhQd1M1S5RoowSE5fKO7y9e2gFou0zBMNa6HJHUTKL1y6Nx2G0VxjLyMrhuO1QxOZGZPlmk9JvbOJhVHYdqW1PzW%2BGPSIE04vswZMNO7qzNlzCiOki%2FvvDhPfYAYXvKkeA0JnlOLAF%2BZrne8irGlOs%2BlWrDcdlK7%2BO5HMXnKUMIFcau4ASwZDKXJPBaPf9PdcKiQzB5ZlqT0%2FwVnoXV1wnFjaI5wP3EBdfMIEtXRyNdoxUYbPTrWA6%2BMYdkTnWYgKrWTosFQetQCvVqA1M%2F8Inlu%2BcxEffRF6YItT0vXfpt8spzigk8uAPAVRpliPy%2F5KCD0Ap8Z0aZL7PVOfgaJPl7LZ3Nv5IKkyFGOKaWP9QRyV4BfzovSwbtxd8DyU0kMioSfbk2wG%2FbegKCMDWyclFfK6h8ixV3RfssOQgloCY36NTBrZIbIGM%2B76i6YHKPMgul1p9CjBqknWEz%2Fu5NT7KE7dFIII1YKNfZu2HtNKfS26cH2hB8ubGP6jE1PDSdsDFp2krjtlEgkYNexg2ifq20MbiwPb7iDALfeD9O16GUS2%2BsifMdnQgqsH2JUBRNTK1uHQAkv6LjlPet6yEb9lmk5PoUJyD9c%2FNY861%2BGkEFRV7BBJW82OAY7BfdUgBAVl2win7DGq5fq5F40aUV0ugw6gFS2%2B7DNfCjoHfwmW%2FpOWGoeWosu7QqpC2L4qesThuJzdmRKtPOBYfAKP5TJgG9ScIklxon6TEvyEtpt6GQbSWgy%2FZXrMtKcplLI%2BNhpQPbUwbyNnne3gML4p8KQJRusYE2cC9hMYajbQPO6KWQuKqm9nfd7AYEXfSoo2Nf21C4fiHTRfNJkxiWcB5KdoTE%2FJy%2FQB35oKInpnkSen1trSM5EEUVNtFijqeNeRzbFkEuBAnK%2BRROppMXw4IwwG%2F%2BgdCD4G4Etlt8HaA3CCCKkk9MRJLeF0uws7KOKw3wlfXib5f4%2FfpPSh7NbBdUlsWZIYAVCqSpjXypIqSId6He141XITkxN8eX9oP5StF2%2BRgJEz9MyB9A2dhdwZ)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/6f575f32c7c862fb9344cc034b98feea.png)
问题:
这个demo的代码 来自于 "https://zh-hans.react.dev/reference/react/useTransition" (https://link.segmentfault.com/?enc=j68ZM%2Be83mWzpiMvSxobVQ%3D%3D.lB%2BYoTqPNJbgMTk1zLOTQY4nsTvqou5E7t9ZybabKQaBiACSK4d%2BSsXyaMrX85Jn1BhRHqS0dw88jRsnaRueCg%3D%3D)
的示例代码,fork后修改了PostsTab组件的逻辑.
问题: 为什么 requestUrl每次渲染时值相同的情况下 useMemo的参数函数会执行多次?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250113/2b7969c9d453dedc50bcc46465035328.png)
复古直男
有什么软件或者方式 能够实现 在 PDF 中 添加图片 作为注释吗?
福昕pdf是可以实现这个功能的(非推广),在阅读器里面找到图章工具就可以了。
"v2-f4925923c23836d4b59cf3b03cebb72e_r.jpg" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250111/947b087d11e254cfa617b875000d46ff.png)
(周末在外面,身边没电脑,引用了一张知乎的图片)
复古直男
如何自定义图例的文本内容?
这样就行了:
legend: {
data: ['商品点击量']
},
需要注意的是要与"series"中的"name"一致
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250109/cec84d7de03c05952faab78c9e50d396.png)
复古直男
webpack tailwindcss raw-loader 后样式无法被打包?
公告公告
这个代码是"index.html" 的代码,其中引入了"header.html" 文件,这个"header.html"
里面也是包含"tailwindcss" 的类名,但是使用"webpack" 打包的时候,是不会被打包进去的,这里应该是被当做 字符串处理了。
webpack config配置
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
entry: {
index: "./src/ts/index.ts",
},
output: {
path: path.resolve(__dirname, "dist"),
filename: "./js/[name].js",
assetModuleFilename: "./imgs/[name][ext][query]",
},
plugins: [
new MiniCssExtractPlugin({
filename: "./css/style.css",
}),
new HtmlWebpackPlugin({
filename: "index.html",
template: "./src/index.html",
chunks: ["index"],
}),
],
module: {
rules: [
{
test: /\.scss$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: "../",
},
},
{
loader: "css-loader",
options: { importLoaders: 1 },
},
"sass-loader",
"postcss-loader",
],
},
{
test: /\.(png|svg|jpg|gif|webp)$/,
type: "asset/resource",
},
{
test: /\.tsx?$/,
use: "ts-loader",
exclude: /node_modules/,
},
],
},
resolve: {
extensions: [".tsx", ".ts", ".js"],
},
mode: "production",
devServer: {
client: {
overlay: false,
logging: "none",
},
open: true,
hot: true,
port: 9000,
},
};
请问:
webpack 如何将"raw-loader" 引入的文件里面的tailwindscss 也一起打包到新的css文件中!
复古直男
请问如何优化这个存在异步逻辑的滚动事件监听函数?
async _handleBrandListScroll() {
const { ids, mainScrollerOffset } = this.data;
let indexs: number[] = [];
for (const id of ids) {
const [[{ top: rectTop }]] = await queryBoundingClient(this, id);
if (typeof rectTop !== 'number') continue;
if (rectTop <= mainScrollerOffset) {
const idIndexs = getIdIndexs(id);
if (!_.isUndefined(idIndexs)) {
indexs = idIndexs;
}
} else {
break;
}
}
const [mainIndex, subIndex] = indexs;
if (this.data.currentLeftTabIndex !== mainIndex) {
this.setData({ currentLeftTabIndex: mainIndex });
this.updateCurrentTopTabList(mainIndex);
}
if (this.data.currentTopTabIndex !== subIndex) {
this.setData({ currentTopTabIndex: subIndex });
this.updateTopTabsScrollLeft(subIndex);
}
},
主要问题是 queryBoundingClient 是异步返回结果的(在微信小程序环境中),导致 _handleBrandListScroll 的
throttle 无效,结果 indexs 不准。体现在视图上就是,滑动过快时当前选中的 tab 来回横跳。
复古直男
如何在小程序中使用图表库?
我想要在小程序上绘制图表,有哪些开箱即用的图表库推荐吗?
复古直男
这是一段防抖代码,为什么会出现不同的结果?
问题出在递归上。如果你那个不是递归的话,其实是防抖了的。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/163d2ead138901ba75834ba2645c92bd.png)
注意看上面红圈处的 "func.apply(context, args)",这是个同步方法
,它执行的是什么?执行的你下面红圈处的递归,也就是又调用了一遍自身,又从头走了一遍箭头处的判断。
而此时下面黄圈处那句 "timeout = setTimeout(...)" 根本还没开始执行呢,所以 "notCalled" 始终成立,自然
"func.apply(context, args)" 会执行多次。
复古直男
docker 打包puppeteer镜像运行报错,请问大佬如何解决?
看你 "Dockerfile" 文件中,并没有安装报错行所提到的依赖库 "libgobject"。
经查询 "node:slim" 的上层是基于 "debian",故查询到的库:
"https://packages.debian.org/search?suite=buster&arch=i386&mod..." (https://link.segmentfault.com/?enc=KHdZN8TGlgly9NytGnbx1g%3D%3D.d0x7dJzsWytZp%2B3BvkCLBu8r1TGT2A9diZA61l1szrkq7TX6WGqe45Yn6H%2F%2BCtiAkV%2F4taewd1Gxt6YJYKABVUEtjvIA%2FYfv48q2cWaV7zdQarkab%2BhLn%2F6zM9Pu2oyKOurGL1VpItP4FGeDgO1IpFsGhXTO40PE5uRe9B2Xkqc%3D)
你定位一下是否已安装此库
locate libgobject-2.0.so
若已存在,显示,比如
/usr/lib/x86_64-linux-gnu/libgobject-2.0.a
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.4800.2
可以
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
# 即在 Dockerfile 中添加此环境变量,如
RUN export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
若不存在,则按上面所给出的 debian 库链接,安装对应系统版本的依赖库"libglib"。再重复上述步骤。
***
经测,确实为 "debian" 源镜像。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/1d95339e3efcce32d7949b8b2e454911.png)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250105/b63a0d2ae91cd04ef1a6d1001a87c6c4.png)
1. 在 "RUN node ..." 上一行添加下述内容:RUN apt update && apt install libglib2.0-0
2. 若还不行,则需要更新 "db",即在上一行添加下述内容:RUN apt install locate && updatedb
3. 若还不行,则按我之前所说的,再加一行:RUN export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
或者像另一个答案的,加在 "node" 前:
RUN LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH node ...
尝试四次看看:
1. 先按步骤 1
2. 再按 1 + 3
3. 再按 1 + 2
4. 再按 1 + 2 + 3
另外,建议下次直接贴 "Dockerfile" 内容。
复古直男
rollup多入口的公共部分怎样才能不提取成单独文件?
用 Rollup 的 manualChunks 选项来自定义 chunk 的创建就行,把util.js 的内容直接嵌入到每个入口文件的 bundle 里
rollup.config.js:
import resolve from '@rollup/plugin-node-resolve';
export default [
{
input: 'src/a.js',
output: {
file: 'output/a-bundle.js',
format: 'esm',
inlineDynamicImports: true,
},
plugins: [resolve()],
},
{
input: 'src/b.js',
output: {
file: 'output/b-bundle.js',
format: 'esm',
inlineDynamicImports: true,
},
plugins: [resolve()],
},
];
要先安装:
npm install @rollup/plugin-node-resolve
运行:
rollup -c
复古直男
使用高德地图的实现定位功能,如何解决定位标志与地图展示的地点icon不重合的情况?
去高德试下了 你的坐标误差太大了
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/e369f9336b88ac69802e3d0f9407ed3f.png
新补充
你请求写的有点问题啊
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241225/13b04dace1b63293746fa1f09020c4ae.png
它是get请求以及参数拼写有误
你url后面的‘?parameters’删掉
"https://restapi.amap.com/v3/geocode/geo?key=b7d627dd31d972643..." (https://link.segmentfault.com/?enc=R2cb8aG4GT1u9MbOBk4zpA%3D%3D.8wku5sPg6HkptT4Hm9PkoBKbaX%2Fw%2BjvWsR7jOQpWboPrZu5FPYd9qyy%2F7MTUf3PwNwHXvx4JjqRHfML4Jl3CUbt9C9jDfhoeRoEKlDUNMUzXVhxgdVcA0DgbqPEPGRXs)山东省济南市经八路小学
最后返回是
{
"status": "1",
"info": "OK",
"infocode": "10000",
"count": "1",
"geocodes": [{
"formatted_address": "山东省济南市市中区经八路小学",
"country": "中国",
"province": "山东省",
"citycode": "0531",
"city": "济南市",
"district": "市中区",
"township": [],
"neighborhood": {
"name": [],
"type": []
},
"building": {
"name": [],
"type": []
},
"adcode": "370103",
"street": [],
"number": [],
"location": "116.988613,36.650877",
"level": "兴趣点"
}]
}
这个经纬度就没问题了
复古直男
el-table固定列通过代码隐藏,展示后,表格会出现明显抖动?
这个有什么好办法解决嘛?"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241226/a2e2d262c304027595e4fd125763fc55.png)
复古直男
父元素设置mousedown之后子元素的dragstart事件就不触发了?
给子元素加一个 "@mousedown.stop=""" 试试
因为你子元素的 "mousedown" 冒泡出去了触发了父元素的 "mousedown"
复古直男
mongodb实现模板的计算字段,如何实现,有什么好的思路希望得到指点?
参考逆波兰表示法和调度场算法,可以实现需求
复古直男
在小程序中,柱图数据过多时,如何配置横向滚动条?
在飞书小程序中使用VChart时,柱图数据过多时,如何配置横向滚动条?
复古直男
如何充分利用多个计算机资源?
有多台笔记本电脑,手机,如何统合这些计算资源?
比如我在一台电脑上安装QQ这个软件 另一台电脑上不需要再安装这个软件 也可以使用QQ这个程序也就是说同样的资源是需要在一台电脑上即可
(我尝试过网络存储,但是效果不太好,首先太慢了,其次需要把每台电脑灯配置成服务器)
另外一个要求 对于一个计算任务把它分配给不同电脑上的CPU进行计算
顺便问一下企业是如何实现多个CPU资源充分利用
复古直男
AMH用的同一个php,有一个启动失败?
https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241218/a179a2415c93740f47fa9542f9d46a15.png
2个php都是7.4
一个网站可以用,一个无法启动
这种如何弄
复古直男
el-drawer切换时如何省略关闭步骤?
背景:
el-drawer切换时,需要关闭,然后再打开另一个el-drawer,可以省略关闭这步吗?
"955.gif" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241215/f41714ad84ef3e835f5f59a3a086eb88.png)
实际场景:
假如有一个el-table,点击对应表名项显示对应表的抽屉内容,当点击不同的表名时显示不同的抽屉内容。
现状:
当a表名切换到b表名时,点击a表名显示a的抽屉栏,点击b表名,要点击两次才能显示b表名对应的抽屉。两次中第一次操作伟关闭a的抽屉,第二次才是打开b表名对应的抽屉
希望效果
当a表名切换到b表名时,点击a表名显示a的抽屉栏,点击b表名,只需点击一次就能打开b表名对应的抽屉,并关闭a表名对应的抽屉。
复古直男
如何快速生成适用于cascader的数据格式?
dataOptions: [
{
value: "1",
label: "1月",
children: [
{ value: "1", label: "1号" },
{ value: "2", label: "2号" },
// ...
{ value: "31", label: "31号" },
],
},
{
value: "2",
label: "2月",
children: [
{ value: "1", label: "1号" },
{ value: "2", label: "2号" },
// ...
{ value: "28", label: "28号" },
],
},
// ....
{
value: "12",
label: "12月",
children: [
{ value: "1", label: "1号" },
{ value: "2", label: "2号" },
// ...
{ value: "31", label: "31号" },
],
},
],
复古直男
这种轮播图怎么实现呢?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241208/dbf58c76bf73a465dc844b0d99894737.png)这种中间高亮选中,类似向上滚动的,轮播图
复古直男
ifarem 有替代的方案吗?
iframe是允许嵌入http协议的外部网页的,你不能嵌入的可能原因是该需要被嵌入的网页开启了CSP禁止被别的页面嵌入。常见的iframe替代方案有object、embed,但是总的来说iframe的适用场景还是更多一点。
复古直男
vue兄弟组件通信?
如果多个组件见有互相控制的,那么使用自定义组件的 "v-model" 规则改造子表单,然后在父级直接用 "v-model" 绑定就可以了。其实就是
"props" + "$emit" 的方式。每次子表单修改之后兄弟表单也会同步到数据。
"#自定义组件的 v-model - 自定义事件 —
Vue.js" (https://link.segmentfault.com/?enc=UN%2B2620bvIh0Iole3lJ1Kg%3D%3D.59n5LbbaEuA21wwgrVrhlC%2FC8m6OOitZAJvOMJ1%2BVJas4V0RHYuOtKWPBHDAs9znnL7GfCbS%2Ffhv1Ggr2TUrCy%2BgGpUSOoOosocsag9FYaQ7cFrW6wvO12xPKvDaw4AssHpl3NUln9XcOqTe10QVK51eONXNQD4KXryRfNc4NWg%3D)
***
当然如果不需要子组件之间的数据同步,也可以简单的在子组件写 "promisify" 的校验函数,在父级通过 "$refs.xx.onValid()"
来调用并且返回表单结果。多个子组件用 "Promise.all()" 来包裹,所有的校验函数都通过则继续执行。
onSubmit() {
Promise.all([
this.$refs.compA.onValid(),
this.$refs.compB.onValid()
]).then(([dataA, dataB]) => {
...
}).catch(err => {
...
})
}
***
当然如果你是使用 "AntD Vue" 这样的UI组件库,也可以尝试直接在父级使用 "a-form" 在子组件直接使用 "a-form-item",这样在父级触发数据收集的时候也可以直接获取到子组件的内容。
我在 "AntD4Vue 1.x" 的版本有尝试过,现在的 "3x" 和 "4x" 不清楚是否依然可以这样处理。
"笔记 - AntD of Vue 中 表单域组件化使用的尝试" (https://link.segmentfault.com/?enc=1PnG1P1LWaqN7oDVrQnk4Q%3D%3D.Ir6UxGtRQWh9sZ%2Fl7kG%2BE1jl1uUdbqTnOgUmUfIiuK%2BVnDobmC%2FFavuSX9Ou5v1y3lX9LaD7QPUIg1Kis2vPiQ%3D%3D)
复古直男
为什么刚刚拉取的 docker 镜像的 digest 镜像和 docker hub 上的不一致?
"https://hub.docker.com/_/python/tags?page=1&name=3.10-bullseye" (https://link.segmentfault.com/?enc=bnks9oqPXV57m7X6sk%2FjbQ%3D%3D.SsaBAYh%2FV1IRV%2BU2y0Kp%2BXYOt%2BDb0Ifek%2BtJL7hI96%2FF%2FopytIxEuXoKK14e4U3dme033113HBGLpCAqZu4jog%3D%3D)
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241203/f74faa740a738b5b920a8befc1c0f150.png)
上面是 docker hub 中,python:3.10-bullseye 的 digest 信息
下面是刚刚执行 docker pull python:3.10-bullseye 输出的 digest 信息
╰─➤ docker pull python:3.10-bullseye
3.10-bullseye: Pulling from library/python
ddf874abf16c: Pull complete
5c1459d3ab8b: Pull complete
29ab00e7798a: Pull complete
7883a473306c: Pull complete
c3ab175b762c: Pull complete
9f11cb399571: Pull complete
cfb416449119: Pull complete
1365a3c2b71e: Pull complete
Digest: sha256:e917e3e93525f97fc343135efc2b3295a11b02450ff8d4eeaff25323c73caf6b
Status: Downloaded newer image for python:3.10-bullseye
docker.io/library/python:3.10-bullseye
可以看到,本地拉取的 Digest 是
e917e3e93525f97fc343135efc2b3295a11b02450ff8d4eeaff25323c73caf6b
复古直男
原生微信小程序有什么好的ui框架?
常用的有:
"iview
weapp" (https://link.segmentfault.com/?enc=bHLNWU%2BvOxivqsevCukqDQ%3D%3D.wafCCvJIOJRHg8KsunceRMEMiONcwD7JZRyjd4nfa1KHsYrAyUu%2F6Anc52Oxzyq3)
"weui" (https://link.segmentfault.com/?enc=uSiK%2FZSQU2kcrQr6Nyjc6g%3D%3D.%2FJjSdpjQRpez1GM8LvcG6hH%2FlQDKRhC%2BspDw7A1IaBY%3D)
"wuxui" (https://link.segmentfault.com/?enc=i2MFB7sxkSeGOFqk5va9rA%3D%3D.9wSYPqHggGSyJNV5gHPlcyDCr%2B65Z%2F53DDFC2%2Bqn23Y%3D)
还有好多,比如"FirstUI"、"lin-ui"之类的
复古直男
vscode 把 yaml 永久改成 4 个空格缩进?
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/4e6bca8ad1b24b92b7dbe2710743ea60.png)
现在的情况是,每次重新打开 vscode,就会变回 2个空格缩进
"图片.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/f0eaff80c7d2f51846e1c54872f4a660.png)
复古直男
像12306那样的扫码支付,应该看哪个文档,支付宝支付文档太多了,PC网站接入扫码支付?
你如果要接入扫码支付的话,各个平台有各个平台的sdk,看业务场景,不过一般是微信支付用得会比较多些如果你要接入微信扫码支付,你就参考"https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_..." (https://link.segmentfault.com/?enc=glyYmZrCtBoAyABds8Rx3g%3D%3D.gQ%2F8zhLlbvlhcpLdyF3tZzz%2BBdFuk64rxXwI6zmpUU8tqYGd7DNF2CGccNuBHBTOYYA9a8S9MJ5azJJRO%2B5vNodgH5vNQEUkNeL12aa0blk%3D)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/c503f10f3179e413c28d3bcd80935fb4.png)
如果你想接入支付宝支付
就查看这个文档
"https://b.alipay.com/page/product-mall/product-detail/I108030..." (https://link.segmentfault.com/?enc=M9YIE%2BcUIsTTJwfAporu4A%3D%3D.9V3j%2FR5cllmaZkj3aalwMRBKD4U5j66Ez4IXqwZcV6MW79D8Ewkg3AtZwfruvGe1cNVvzEmIcm6KmOuI0t8uFMtlP1j4vpLwCTpvmaDvXBU%3D)
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241129/93a6d5b4194a06641997cda63ea9228e.png)
复古直男
父子组件都使用memo,兄组件切换显示,弟组件重新渲染,memo为啥失效?
父组件:
{isView && }
子组件:
useEffect(() => {
console.log('渲染了');
}, []);
父组件和子组件都是用了memo:"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/83e384f16e6773ab5aae538527842151.png),切换isView,理应ImgShow组件不重新渲染,但是isView切换,都会打印“渲染了”,memo感觉失效了,这是为什么啊?求大佬指教
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241130/1ef5e12414f4b3a1a7cfb1b01284d9e0.png)
复古直男
js正则多次替换有没有优雅的写法?
这段代码用来规范json字符串,有没有优雅的写法?
var gLoginQstr = '{firstname: jack, lastname: li, age: 30}';
gLoginQstr = gLoginQstr.replace("{", "{\"");
gLoginQstr = gLoginQstr.replace(/:/g, "\":\"");
gLoginQstr = gLoginQstr.replace(/,/g, "\",\"");
gLoginQstr = gLoginQstr.replace("}", "\"}");
console.log(gLoginQstr );
复古直男
请问下有谁知道莹石云这种软件是如何实现在手机上看监控的吗?
你理解成直播app就行了,
只不过开直播的不是主播,
而是那一个个装在厂区各个地方的摄像头🤣
复古直男
vue2 中使用 keep-alive 不生效?
你应该考虑一下,"router-view"渲染的路由配置的"name"是否和组件的"name"一致,如果不一致的化"keep-alive"是不生效的。
Vue3的方案
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241121/29e5d6b653c70b8b581eadddca16e65a.png)
解决方案参考:"https://juejin.cn/post/7216262593718173752" (https://link.segmentfault.com/?enc=%2ByfHtjAP5s99hJ0cUS%2FE2g%3D%3D.jn3WjTBnOB0NFqiOOSxJAKBCLzXNKIsI6oP15rMJRJIwYpeSTOq1QMcXMTuEH0Qc)
复古直男
鼠标滚动动画实现?
我想写个动画。比如说鼠标向上滚动,一个div往上运动。当我鼠标向下的时候,div往下运动。
有没有这种动画库?我以前的做法是判断滚动方向。然后分别执行不同的动画函数。当然了我的一个动画里面,肯定是包含好几个运动元素的。
复古直男
请问 git merge 如何跳过 vim 确认提示?
请问 git merge 如何跳过 vim 确认提示?
使用过 git merge 的大神应该都知道,合并一个分支的时候经常会弹出一个 vim 确认框,大部分的情况下需要手动输入 :wq
退出这个提示然后合并完成。
我希望再命令行直接跳过这个步骤,该怎么办呢?跪谢大神指点。
复古直男
indexDB 离线存储和数据同步问题?
1. 我觉得图片还是不适合存数据库。
2. indexedDB 没记错的话可以用掉硬盘空间的 1/3,不过需要用户许可。
3. 同步方案我以前试过 PouchDB + CouchDB。PouchDB 是在 indexedDB 上做的封装,支持 CouchDB 协议,所以可以双向同步。
复古直男
element-plus类名样式为什么无效?
element-plus 官网里面的 Layout 布局中的示例,官方文档中添加类名 class="grid-content ep-bg-purple-dark" 有相应的样式
https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241110/45116af8824fc40a4f0aa6299ad4d6e9.png
为什么在自己的代码中使用这些类名没有相关的样式?
希望有相关的样式
复古直男
前端文档搜索功能实现方案?
前端这个文档搜索功能怎么实现的?
我看搜索时没走后端,输入时能瞬间加载出内容,这个搜索是提前将文档缓存到前端吗,为什么每个标题能独立显示
***
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241105/07c45a4282dded893cec547040be064b.png)
复古直男
DJango如何实现分词搜索?
这种分词搜索是如何实现的,这是微信开放社区的页面,例如我搜索“PPT模板文件”,系统会自动拆分为:PPT文件,PPT,PPT模板,文件,模板
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241104/1a099cefb1bbd213f197f70b0320ef52.png)
这种功能如何实现呢?
复古直男
[devtool css]为什么这里存在一块紫色斜线区域(so所说的flex的剩余空间),而实际上看上去这块紫色区域是“溢出空间”?
[devtool css]为什么这里存在一块紫色斜线区域(so所说的flex的剩余空间),而实际上看上去这块紫色区域是“溢出空间”?
如图
鼠标所指元素a存在两个子元素,其中第二个子元素的高度超过了a的高度
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241030/1553a55c54f72128be442658dd3358a5.png)
"image.png" (https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241030/e98105426996410ff77dcd3edd9240ad.png)
复古直男
try except结构调用函数的输出结果为何是这样?
那些信息是 python 针对没有被处理的 exception 打印出来的。
你后一个写法把 exception 处理掉了,就不会打印了。
第一个写法中,是在处理 exception 的过程中又抛出了另一个 exception 。新的 exception 就没有被处理了。
复古直男
如何使 VS Code 在自动保存后立即执行自动格式化?
vscode自动保存选afterDelay时自动格式化不生效
"4bd11a84394366528c31c9f3d715587e.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241016/b57d2582b31238f74a5a9ea4fc5e1790.png)
这是我目前的配置
{
"editor.fontSize": 20, // 编辑器字体大小
"terminal.integrated.fontSize": 18, // terminal 框的字体大小
"editor.tabSize": 2, // Tab 的大小 2个空格
"editor.formatOnSave": true, // 保存是格式化
"prettier.singleQuote": true, // 单引号
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"eslint.format.enable": true,
"eslint.validate": [
"javascript",
"javascriptreact",
"html",
"vue",
"typescript",
"typescriptreact"
]
}
{
"editor.formatOnSave": true,
}
希望图中这两项能同时起作用
复古直男
单词之间存在连字符导致的内容换行问题?
"word-break",顾名思义,用来断词。
你的问题里,有空格存在,明显不是一个单词,所以应该用 "whitespace: nowrap"。
复古直男
如何在nvue页面实现下拉刷新?
在nvue页面如何实现下拉刷新?
尝试用了uni-scroll-view这个组件发现没有效果
// 监听下拉动作
onPulling() {
console.log('onPulling...')
},
// 触发下拉刷新
onRefresh() {
console.log('onRefresh...')
// 下拉刷新操作
// ...
// 更新完数据后,停止下拉刷新动画
uni.stopPullDownRefresh()
},
复古直男
QQ浏览器内核怎么降低?
现在的QQ浏览器都是IE11的内核,怎么才能更新的之前的ie8内核,
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/7addf639959d2de00baa31485898e246.png
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241013/9249eca1b46cc5da424cc7a697fd086f.png
我想把我的QQ浏览器内核还原到IE8的内核,有大佬们知道吗?
请问QQ浏览器在什么情况下会切换内核啊。开始是Chromium94.0.4606.71 后面切换到IE8 了
复古直男
想了解一些react设计原理这种更深入一些的知识读什么书比较好?
我已经能够熟练使用react了,所以想更深入了解一下react这方面的知识,有没有什么书籍推荐?类似于vue的《深入浅出Vue.js》和《Vue.js设计与实现》这种的,最好是近些年出版的,我知道《React设计原理》这本书,但是评价来看好像不太好
复古直男
我想做一个类似https://geojson.io/的效果怎么做?
我想做一个跟"https://geojson.io/" (https://link.segmentfault.com/?enc=Izo2N38K1ZP0ar2KF%2F%2FzGw%3D%3D.pPk1HOJXR%2BngAEZQ6oAR7v6UHEGOEFXs7RWKdWeVm2w%3D)一样的可交互的地球,而且还不卡,请问应该用什么方案实现?
复古直男
像这种可以折叠展开的json可视化功能是如何实现的?
https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/084aa0d6d1272c65dd82e1ef596aac99.png
Title
.json-view {font-family:Consolas, monospace;}
.json-view .tpl {display:none;}
.json-view .k {color:#369;}
.json-view .k:empty ~ .colon {display:none;}
.json-view .json-boolean .v {color:#993;}
.json-view .json-number .v {color:#939;}
.json-view .json-bigint .v {color:#939;}
.json-view .json-string .v {color:#393;}
.json-view .json-null .v {color:#CCC;}
.json-view a {display:block;}
.json-view a > .tag-open:before {content:'[+]';margin-right:0.5em;color:#399}
.json-view a > .tag-ddd {}
.json-view a > .content {display:none;margin-left:1em;}
.json-view a.open > .tag-open:before {content:'[-]';color:#F33;}
.json-view a.open > .tag-ddd {display:none;}
.json-view a.open > .content {display:block;}
.json-view a:last-child > .comma {display:none}
.json-view a .content :last-child > .comma {display:none}
document.addEventListener('DOMContentLoaded', function(){
function json_view_create_value($domBase, $domTpl, $tplClass, $key, $v)
{
let domTpl, dom;
domTpl = $domTpl.querySelector($tplClass);
dom = domTpl.cloneNode(true);
if(typeof($key) === 'string')
dom.querySelector('.k').innerHTML = '"'+$key+'"';
dom.querySelector('.v').innerHTML = $v;
$domBase.appendChild(dom);
}
function json_view_boolean($domBase, $domTpl, $key, $v)
{
json_view_create_value($domBase, $domTpl, '.json-boolean', $key, $v ? 'true' : 'false');
}
function json_view_number($domBase, $domTpl, $key, $v)
{
json_view_create_value($domBase, $domTpl, '.json-number', $key, $v);
}
function json_view_bigint($domBase, $domTpl, $key, $v)
{
json_view_create_value($domBase, $domTpl, '.json-number', $key, $v);
}
function json_view_string($domBase, $domTpl, $key, $v)
{
json_view_create_value($domBase, $domTpl, '.json-string', $key, '"'+$v+'"');
}
function json_view_null($domBase, $domTpl, $key, $v)
{
json_view_create_value($domBase, $domTpl, '.json-null', $key, 'null');
}
function json_view_array($domBase, $domTpl, $key, $arr)
{
let domTpl, dom;
domTpl = $domTpl.querySelector('.json-array');
dom = domTpl.cloneNode(true);
if(typeof($key) === 'string')
dom.querySelector('.k').innerHTML = '"'+$key+'"';
dom.addEventListener('click', function($evt){
if($evt.target.classList.contains('tag-ac') === false)
return;
let domContent = dom.querySelector(':scope > .content');
if(this.classList.contains('open') === true)
{
this.classList.remove('open');
}
else
{
if(domContent.classList.contains('none') === true)
{
if(typeof($key) === 'string')
dom.querySelector('.k').innerHTML = '"'+$key+'"';
domContent.classList.remove('none');
for(let i=0; i .content');
if(this.classList.contains('open') === true)
{
this.classList.remove('open');
}
else
{
if(domContent.classList.contains('none') === true)
{
if(typeof($key) === 'string')
dom.querySelector('.k').innerHTML = '"'+$key+'"';
domContent.classList.remove('none');
for(let key in $ob)
{
json_view(domContent, $domTpl, key, $ob[key]);
}
}
this.classList.add('open');
}
$evt.stopPropagation();
});
$domBase.appendChild(dom);
}
function json_view($domBase, $domTpl, $key, $json)
{
let mapView = {
'boolean' : json_view_boolean,
'number' : json_view_number,
'bigint' : json_view_bigint,
'string' : json_view_string,
'null' : json_view_null,
'array' : json_view_array,
'object' : json_view_object,
};
let type = typeof($json);
if(type === 'object')
{
if($json === null) type = 'null';
else if(Array.isArray($json) === true) type = 'array';
}
if(type in mapView === false)
throw 'invalid type ['+type+']';
mapView[type]($domBase, $domTpl, $key, $json);
}
let json = {
'null' : null,
'number' : 123,
'string' : 'abc',
'array' : [null, 123, 'abc', false, {
'null' : null,
'number' : 123,
'string' : 'abc',
}],
'object' : {
'boolean' : true,
},
};
let domRoot = document.querySelector('.json-view .json-root');
let domTpl = document.querySelector('.json-view .tpl');
json_view(domRoot, domTpl, null, json);
});
:
,
:
,
:
,
:
,
:
,
:
[...]
,
:
{...}
,
复古直男
Springboot 项目使用 RMapCache 保存数据,发现值出现 \x00,如何处理?
"RedisTemplate" 如果不主动设置,默认使用的都是 "JdkSerializationRedisSerializer",换成
"GenericJackson2JsonRedisSerializer" 就好了。
@Configuration
public class RedisTemplateConfig {
@Bean
public RedisTemplate redisTemplate() {
redisTemplate.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
}
或者
@Configuration
public class RedisTemplateConfig {
@Bean
public GenericJackson2JsonRedisSerializer springSessionDefaultRedisSerializer() {
return new GenericJackson2JsonRedisSerializer();
}
}
补充
import com.fasterxml.jackson.databind.ObjectMapper;
import org.redisson.client.codec.Codec;
import org.redisson.codec.JsonJacksonCodec;
import org.redisson.spring.starter.RedissonAutoConfiguration;
import org.redisson.spring.starter.RedissonAutoConfigurationCustomizer;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedissonCustomizer {
@Bean
RedissonAutoConfigurationCustomizer redissonCustomizer() {
ObjectMapper objectMapper = new ObjectMapper();
return configuration -> {
Codec codecIns = new JsonJacksonCodec(objectMapper);
configuration.setCodec(codecIns);
};
}
}
更新
用mapCache,是一定有这些特殊字符的,cache有最大存活时间。
复古直男
为什么next.js第一个并行路由的布局不能够渲染的,第二个并行路由的布局可以展示?
破案了,还是next.js版本问题。将next.js从v14降到v13后,代码一点没改,就成功了。。。
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241009/51e382b42f3fc6ee2f1aa5a4875d7a24.png)
复古直男
微信扫码登录后关闭弹窗并刷新窗口?
扫码登录之后,不要跳转到你的目标页,而是转到的一个中间页,
在这个中间页通过"window.opener" (https://link.segmentfault.com/?enc=unhlnU8GaXFqXSY4Cvekcg%3D%3D.8MZwJI38wcqDWerAXHmJ2Or11ywzqNkFv0nzoWPfZsjnVs4QUjrdIEOL22F%2B89YxLPJocLr2Sput5ztG4VYUlA%3D%3D)执行一些需要"大窗口"执行的逻辑,
然后通过"Window.close()" (https://link.segmentfault.com/?enc=k1MGaOoPOVWEUTcC13JkUA%3D%3D.mWwG%2B3dDEYKLgmtQai%2Bs%2FNQ4byPW9gDN4uktSriOhQIFigw5fDTvgi2wztmT2%2F13Da6WdtI44cJ2%2Brn07CmsCA%3D%3D)把小窗关掉就行了
复古直男
请问如何使用git diff 对比两个文件的差异呢?
请问如何使用git diff 对比两个文件的差异呢?
我从1.txt 复制内容到2.txt 并修改了内容信息,
我想要使用git diff 它们,输出差异的位置信息。
但是我执行如下的命令:
$ git diff ./test06.js ./test06-02.js
没有得到任何响应内容。
复古直男
height、max-height、min-height一起用时,哪个优先级高?
有如下html代码:
Document
很好奇父元素200px是怎么来的,说明min-height生效了吗?但是如果是min-height生效了,又因为子元素300px,不是会自适应吗?
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241005/26a33ca0e46b8eaec7483e1336cb28e4.png)
想知道200px怎么作用的,如果是min-height生效,那为什么父元素最后的高度不是和子元素高度一样