Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
88f18483
U
uni-app
项目概览
genary
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
88f18483
编写于
4月 19, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(app): pass timer to debounce
上级
280e3a14
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
41 addition
and
16 deletion
+41
-16
packages/uni-app-plus/src/service/framework/webview/init/event/resize.ts
...p-plus/src/service/framework/webview/init/event/resize.ts
+4
-1
packages/uni-components/src/helpers/useField.ts
packages/uni-components/src/helpers/useField.ts
+7
-3
packages/uni-h5/src/framework/setup/index.ts
packages/uni-h5/src/framework/setup/index.ts
+4
-1
packages/uni-h5/src/service/api/location/chooseLocation/LoctaionPicker.tsx
...rc/service/api/location/chooseLocation/LoctaionPicker.tsx
+10
-6
packages/uni-shared/src/debounce.ts
packages/uni-shared/src/debounce.ts
+15
-4
packages/vite-plugin-uni/src/utils/easycom.ts
packages/vite-plugin-uni/src/utils/easycom.ts
+1
-1
未找到文件。
packages/uni-app-plus/src/service/framework/webview/init/event/resize.ts
浏览文件 @
88f18483
...
...
@@ -19,5 +19,8 @@ export function onWebviewResize(webview: PlusWebviewWebviewObject) {
}
emit
(
ON_RESIZE
,
res
,
parseInt
(
webview
.
id
!
))
// Page lifecycle
}
webview
.
addEventListener
(
'
resize
'
as
any
,
debounce
(
onResize
,
50
))
webview
.
addEventListener
(
'
resize
'
as
any
,
debounce
(
onResize
,
50
,
{
setTimeout
,
clearTimeout
})
)
}
packages/uni-components/src/helpers/useField.ts
浏览文件 @
88f18483
...
...
@@ -229,9 +229,13 @@ function useValueSync(
emit
:
SetupContext
[
'
emit
'
],
trigger
:
CustomEventTrigger
)
{
const
valueChangeFn
=
debounce
((
val
:
any
)
=>
{
state
.
value
=
getValueString
(
val
,
props
.
type
)
},
100
)
const
valueChangeFn
=
debounce
(
(
val
:
any
)
=>
{
state
.
value
=
getValueString
(
val
,
props
.
type
)
},
100
,
{
setTimeout
,
clearTimeout
}
)
watch
(()
=>
props
.
modelValue
,
valueChangeFn
)
watch
(()
=>
props
.
value
,
valueChangeFn
)
const
triggerInputFn
=
throttle
((
event
:
Event
,
detail
:
InputEventDetail
)
=>
{
...
...
packages/uni-h5/src/framework/setup/index.ts
浏览文件 @
88f18483
...
...
@@ -172,7 +172,10 @@ export function setupApp(comp: any) {
onBeforeMount
(
onLaunch
)
}
onMounted
(()
=>
{
window
.
addEventListener
(
'
resize
'
,
debounce
(
onResize
,
50
))
window
.
addEventListener
(
'
resize
'
,
debounce
(
onResize
,
50
,
{
setTimeout
,
clearTimeout
})
)
window
.
addEventListener
(
'
message
'
,
onMessage
)
document
.
addEventListener
(
'
visibilitychange
'
,
onVisibilityChange
)
})
...
...
packages/uni-h5/src/service/api/location/chooseLocation/LoctaionPicker.tsx
浏览文件 @
88f18483
...
...
@@ -220,12 +220,16 @@ export default /*#__PURE__*/ defineSystemComponent({
const
{
t
}
=
useI18n
()
const
state
=
useState
(
props
)
const
{
list
,
listState
,
loadMore
,
reset
,
getList
}
=
useList
(
state
)
const
search
=
debounce
(()
=>
{
reset
()
if
(
state
.
keyword
)
{
getList
()
}
},
1000
)
const
search
=
debounce
(
()
=>
{
reset
()
if
(
state
.
keyword
)
{
getList
()
}
},
1000
,
{
setTimeout
,
clearTimeout
}
)
watch
(
()
=>
state
.
searching
,
(
val
)
=>
{
...
...
packages/uni-shared/src/debounce.ts
浏览文件 @
88f18483
export
function
debounce
(
fn
:
Function
,
delay
:
number
)
{
interface
Timer
{
setTimeout
:
Function
clearTimeout
:
Function
}
/**
* 需要手动传入 timer,主要是解决 App 平台的定制 timer
* @param fn
* @param delay
* @param timer
* @returns
*/
export
function
debounce
(
fn
:
Function
,
delay
:
number
,
timer
:
Timer
)
{
let
timeout
:
any
const
newFn
=
function
(
this
:
any
)
{
clearTimeout
(
timeout
)
timer
.
clearTimeout
(
timeout
)
const
timerFn
=
()
=>
fn
.
apply
(
this
,
arguments
)
timeout
=
setTimeout
(
timerFn
,
delay
)
timeout
=
timer
.
setTimeout
(
timerFn
,
delay
)
}
newFn
.
cancel
=
function
()
{
clearTimeout
(
timeout
)
timer
.
clearTimeout
(
timeout
)
}
return
newFn
}
packages/vite-plugin-uni/src/utils/easycom.ts
浏览文件 @
88f18483
...
...
@@ -26,7 +26,7 @@ export const initEasycom = (watcher?: FSWatcher) => {
disableGlobbing
:
true
,
})
}
const
refreshEasycom
=
debounce
(
refresh
,
100
)
const
refreshEasycom
=
debounce
(
refresh
,
100
,
{
setTimeout
,
clearTimeout
}
)
watcher
.
on
(
'
all
'
,
(
eventName
,
path
)
=>
{
if
(
!
[
'
add
'
,
'
unlink
'
].
includes
(
eventName
))
{
return
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录