小程序
小游戏
企业微信
微信支付
扫描小程序码分享
一个有交互有图片的列表,20多项的时候在同事华为手机上渲染就要一秒多,只有3项的时候就零点几秒,明显快很多,有什么优化建议吗
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
自定义组件里很复杂吗,麻烦提供下代码
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
是删除了哪个组件呢
// component/readCheck/readCheck.js
const app = getApp();
/**
* 听读按钮组件
*/
Component({
* 组件的属性列表
properties: {
params: Object,
// 请求参数,包括objectId, objectType
checkStatus: Boolean,
// 勾选状态
// 按钮文字
text: {
type: String,
value:
'完成听读'
},
cls: String,
// 附加样式
noHover: Boolean
// 是否有选中高亮
* 组件的初始数据
data: {
* 组件生命周期函数,在组件实例进入页面节点树时执行
attached:
function
() {
* 组件的方法列表
methods: {
readCheckTap:
(e) {
if
(
this
.data.busy)
return
false
.setBusy(
true
)
._doPost().then((status) => {
.triggerEvent(
'change'
, { status: status })
// 广播事件
}, (err) => {
wx.showToast({
title:
'未知错误'
,
image:
'/assets/images/info_grey.png'
});
console.log(err)
})
// 根据状态发送请求
_doPost:
.data.checkStatus) {
._unCompleteAction()
}
else
{
._completeAction()
// 取消听读
_unCompleteAction:
new
Promise((resolve, reject) => {
app.RPCService.notifyUncompleteGoal(
.data.params).then((res) => {
.setData({
checkStatus:
resolve(
reject(err)
// 完成听读
_completeAction:
app.RPCService.notifyCompleteGoal(
// 设置繁忙状态
setBusy:
(value) {
busy: value
<!--component/readCheck/readCheck.wxml-->
<
view
class
=
'read-check {{cls}}'
hover-class
'{{noHover ? "" : "view-btn-hover"}}'
bindtap
'readCheckTap'
>
wx:if
'{{checkStatus}}'
'check-on'
"iconfont icon-dagou"
></
>{{text}}
</
wx:else
'check-off'
"iconfont icon-artboard61"
另外,安卓机测试的少,他的华为手机在此列表使用scroll-view滑动快的话不顺畅。
一个自定义组件
刚才调试了下,删除列表上使用的一个组件可以减少很多时间。。。
有id 用了wx:key='id',但是这应该无关性能吧
用了wx:key 吗?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
自定义组件里很复杂吗,麻烦提供下代码
是删除了哪个组件呢
// component/readCheck/readCheck.js
const app = getApp();
/**
* 听读按钮组件
*/
Component({
/**
* 组件的属性列表
*/
properties: {
params: Object,
// 请求参数,包括objectId, objectType
checkStatus: Boolean,
// 勾选状态
// 按钮文字
text: {
type: String,
value:
'完成听读'
},
cls: String,
// 附加样式
noHover: Boolean
// 是否有选中高亮
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件生命周期函数,在组件实例进入页面节点树时执行
*/
attached:
function
() {
},
/**
* 组件的方法列表
*/
methods: {
readCheckTap:
function
(e) {
if
(
this
.data.busy)
return
false
this
.setBusy(
true
)
this
._doPost().then((status) => {
this
.triggerEvent(
'change'
, { status: status })
// 广播事件
this
.setBusy(
false
)
}, (err) => {
wx.showToast({
title:
'未知错误'
,
image:
'/assets/images/info_grey.png'
});
console.log(err)
this
.setBusy(
false
)
})
},
// 根据状态发送请求
_doPost:
function
() {
if
(
this
.data.checkStatus) {
return
this
._unCompleteAction()
}
else
{
return
this
._completeAction()
}
},
// 取消听读
_unCompleteAction:
function
() {
return
new
Promise((resolve, reject) => {
app.RPCService.notifyUncompleteGoal(
this
.data.params).then((res) => {
this
.setData({
checkStatus:
false
})
resolve(
false
)
}, (err) => {
reject(err)
})
})
},
// 完成听读
_completeAction:
function
() {
return
new
Promise((resolve, reject) => {
app.RPCService.notifyCompleteGoal(
this
.data.params).then((res) => {
this
.setData({
checkStatus:
true
})
resolve(
true
)
}, (err) => {
reject(err)
})
})
},
// 设置繁忙状态
setBusy:
function
(value) {
this
.setData({
busy: value
})
}
}
})
<!--component/readCheck/readCheck.wxml-->
<
view
class
=
'read-check {{cls}}'
hover-class
=
'{{noHover ? "" : "view-btn-hover"}}'
bindtap
=
'readCheckTap'
>
<
view
wx:if
=
'{{checkStatus}}'
class
=
'check-on'
>
<
view
class
=
"iconfont icon-dagou"
></
view
>{{text}}
</
view
>
<
view
wx:else
class
=
'check-off'
>
<
view
class
=
"iconfont icon-artboard61"
></
view
>{{text}}
</
view
>
</
view
>
另外,安卓机测试的少,他的华为手机在此列表使用scroll-view滑动快的话不顺畅。
一个自定义组件
刚才调试了下,删除列表上使用的一个组件可以减少很多时间。。。
有id 用了wx:key='id',但是这应该无关性能吧
用了wx:key 吗?