gotoPage(event) { const option = event.currentTarget.dataset.option if (option.title === '合同签署') { wx.navigateTo({ url: option.path + "?indexSource=divide" }) } else if (option.title === '提车管理') { wx.navigateTo({ url: option.path + "?indexSource=collection" }) } else if (option.title === '我的订单') { wx.navigateTo({ url: option.path + "?indexSource=order" }) } else if (option.title === '新车入库') { wx.navigateTo({ url: option.path + "?carType=2" }) } else if (option.title === '旧车入库') { wx.navigateTo({ url: option.path + "?carType=3" }) } else { wx.navigateTo({ url: option.path }) } }, 优化
时间: 2024-04-10 19:33:29 浏览: 13
优化这段代码的一个方法是使用一个对象字典来存储`option.title`与对应的参数值,然后根据`option.title`从字典中获取参数值。这样可以避免多个`if-else`语句,使代码更简洁可读。以下是优化后的代码示例:
```javascript
gotoPage(event) {
const option = event.currentTarget.dataset.option;
const optionParams = {
'合同签署': { path: option.path, indexSource: 'divide' },
'提车管理': { path: option.path, indexSource: 'collection' },
'我的订单': { path: option.path, indexSource: 'order' },
'新车入库': { path: option.path, carType: 2 },
'旧车入库': { path: option.path, carType: 3 }
};
const params = optionParams[option.title] || {};
wx.navigateTo({
url: option.path + this.buildQueryString(params)
});
},
buildQueryString(params) {
const queryString = Object.keys(params)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join('&');
return queryString ? `?${queryString}` : '';
}
```
在上述代码中,我们创建了`optionParams`对象字典,将每个`option.title`对应的参数值以键值对的形式存储在字典中。然后,使用`optionParams[option.title]`来获取对应的参数值,如果没有找到对应的参数值,则默认为空对象。最后,使用`this.buildQueryString(params)`函数构建查询字符串,并将其添加到导航URL中。
这种优化方法可以使代码更清晰、更易于维护,并减少重复的逻辑判断。希望对您有所帮助!如果您有任何其他问题,请随时提问。