小程序
小游戏
企业微信
微信支付
扫描小程序码分享
一个有交互有图片的列表,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.jsconst app = getApp();/*** 听读按钮组件*/Component({/*** 组件的属性列表*/properties: {params: Object,// 请求参数,包括objectId, objectTypecheckStatus: Boolean,// 勾选状态// 按钮文字text: {type: String,value:'完成听读'},cls: String,// 附加样式noHover: Boolean// 是否有选中高亮},/*** 组件的初始数据*/data: {},/*** 组件生命周期函数,在组件实例进入页面节点树时执行*/attached:function() {},/*** 组件的方法列表*/methods: {readCheckTap:function(e) {if(this.data.busy)returnfalsethis.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) {returnthis._unCompleteAction()}else{returnthis._completeAction()}},// 取消听读_unCompleteAction:function() {returnnewPromise((resolve, reject) => {app.RPCService.notifyUncompleteGoal(this.data.params).then((res) => {this.setData({checkStatus:false})resolve(false)}, (err) => {reject(err)})})},// 完成听读_completeAction:function() {returnnewPromise((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--><viewclass='read-check {{cls}}'hover-class='{{noHover ? "" : "view-btn-hover"}}'bindtap='readCheckTap'><viewwx:if='{{checkStatus}}'class='check-on'><viewclass="iconfont icon-dagou"></view>{{text}}</view><viewwx:elseclass='check-off'><viewclass="iconfont icon-artboard61"></view>{{text}}</view></view>另外,安卓机测试的少,他的华为手机在此列表使用scroll-view滑动快的话不顺畅。
一个自定义组件
刚才调试了下,删除列表上使用的一个组件可以减少很多时间。。。
有id 用了wx:key='id',但是这应该无关性能吧
用了wx:key 吗?