优化精简这段代码 currentStoreDistance() { const { longitude, latitude, big_stores } = this.data const stores = big_stores const origin = `${longitude},${latitude}` const destination = `${stores.longitude},${stores.latitude}` const that=this this.data.myAmapFun.getDrivingRoute({ origin, destination, success(data) { stores.distance = Math.round(data.paths[0].distance / 100) / 10 that.setData({ big_stores:stores }) } }) }
时间: 2024-02-13 14:06:37 浏览: 157
可以优化的地方有:
1. 将 destructuring 和赋值合并成一行;
2. 不需要将 `big_stores` 赋值给 `stores`,直接使用 `big_stores` 即可;
3. 将 `const that = this` 改为箭头函数;
4. 使用对象解构简化 `data.paths[0].distance` 的访问;
5. 使用模板字符串简化字符串拼接。
优化后的代码如下:
```
currentStoreDistance() {
const { longitude, latitude, big_stores } = this.data;
const origin = `${longitude},${latitude}`;
const destination = `${big_stores.longitude},${big_stores.latitude}`;
this.data.myAmapFun.getDrivingRoute({
origin,
destination,
success: (data) => {
const { distance } = data.paths[0];
big_stores.distance = Math.round(distance / 100) / 10;
this.setData({ big_stores });
}
});
}
```
相关问题
优化以下代码 if (ConfigsData.ContainsKey("BUOY_LIST")) { //二级变量,存储BUOYLIST里面的所有数据 JsonData jsondataMessage = ConfigsData["BUOY_LIST"]; for (int i = 0; i < jsondataMessage.Count; i++) { JsonData message = jsondataMessage[i]; BUOY buoy = new BUOY() { BUOY_NAME = message.GetStringValue("BUOY_NAME"), LONGITUDE = message.GetDoubleValue("LONGITUDE"), LATITUDE = message.GetDoubleValue("LATITUDE"), IN_SCREEN = message.GetBoolValue("IN_SCREEN"), CAMERA_POSITION_X = message.GetDoubleValue("CAMERA_POSITION_X"), CAMERA_POSITION_Y = message.GetDoubleValue("CAMERA_POSITION_Y"), CAMERA_POSITION_Z = message.GetDoubleValue("CAMERA_POSITION_Z"), CAMERA_ROTITION_X = message.GetDoubleValue("CAMERA_ROTITION_X"), CAMERA_ROTITION_Y = message.GetDoubleValue("CAMERA_ROTITION_Y"), }; if (jsondataMessage[i].ContainsKey("IS_RED_COLOR")) { buoy.IS_RED_COLOR = message.GetBoolValue("IS_RED_COLOR"); } BUOY_LIST.Add(buoy); } }
以下是对代码的优化建议:
1. 将字符串常量提取为常量或者变量,避免多次使用字符串常量时的性能损失。
2. 使用 TryGetValue 方法来获取字典中的值,避免重复访问字典。
3. 将循环中的 jsondataMessage[i] 提取为变量,避免多次重复访问。
4. 对于包含可选字段的情况,使用 TryGetValue 方法来获取可选字段的值。
优化后的代码如下所示:
```
const string BUOY_LIST_KEY = "BUOY_LIST";
if (ConfigsData.TryGetValue(BUOY_LIST_KEY, out var buoyListData))
{
foreach (var buoyData in buoyListData)
{
var buoy = new BUOY()
{
BUOY_NAME = buoyData.GetStringValue("BUOY_NAME"),
LONGITUDE = buoyData.GetDoubleValue("LONGITUDE"),
LATITUDE = buoyData.GetDoubleValue("LATITUDE"),
IN_SCREEN = buoyData.GetBoolValue("IN_SCREEN"),
CAMERA_POSITION_X = buoyData.GetDoubleValue("CAMERA_POSITION_X"),
CAMERA_POSITION_Y = buoyData.GetDoubleValue("CAMERA_POSITION_Y"),
CAMERA_POSITION_Z = buoyData.GetDoubleValue("CAMERA_POSITION_Z"),
CAMERA_ROTITION_X = buoyData.GetDoubleValue("CAMERA_ROTITION_X"),
CAMERA_ROTITION_Y = buoyData.GetDoubleValue("CAMERA_ROTITION_Y"),
};
buoyData.TryGetValue("IS_RED_COLOR", out buoy.IS_RED_COLOR);
BUOY_LIST.Add(buoy);
}
}
```
// 分页 handleSizeChange(val) { this.pageSize = val this.handleNodeClick() }, handleCurrentChange(val) { this.page = val this.handleNodeClick() }, async getTreeListList() { const { data } = await businessTreeApi() this.departlist = JSON.parse(data.data) }, // 右侧上部分信息 async handleNodeClick(type) { console.log(type) if (type) { this.id = type.id } const List = (await businessApi(this.id)).data.data // this.datalist.agentId = type.id ? type.id : id // console.log(this.datalist) // const {data}= await courierPagingApi(this.datalist) // console.log(data); console.log(List) if (List.type === 1) { this.form.type = '一级转运中心' } else if (List.type === 2) { this.form.type = '二级转运中心' } else this.form.type = '营业部' this.form.number = List.id // v-model 数字 // this.form.type=List.type==3?'营业部':'', // 类型 this.form.name = List.name // 名字 this.form.region = List.province.name // 省 this.form.city = List.city.name // 城市 this.form.county = List.county.name // 县区 this.form.address = List.address // 详细地址 this.form.people = List.managerName // 负责人 this.form.phone = List.phone // 电话 this.form.longitude = List.longitude // 经度 this.form.latitude = List.latitude // 维度 // ------------------------------------ let obj = { page: this.page, pageSize: this.pageSize, agencyId: this.id } // 页码 const { data } = await getUserPageApi(obj) this.total = data.data.counts console.log(data.data) this.tableData = data.data.items this.total = Number(data.data.counts) // 下拉框数据 const res = await editAreasApi() console.log(res) this.economize = res.data.data if (this.value) { const ress = await editAreasApi(this.value) console.log(ress) } }, onSubmit() { this.isOk = !this.isOk } // 编辑数据 }
这段代码是关于一个树形结构的页面分页展示和编辑数据的处理,其中包括以下几个方法:
1. `handleSizeChange(val)`:处理每页展示数据量的变化,并调用`handleNodeClick()`方法重新渲染数据。
2. `handleCurrentChange(val)`:处理当前页码的变化,并调用`handleNodeClick()`方法重新渲染数据。
3. `getTreeListList()`:获取树形结构的数据,并将其解析为JSON格式。
4. `handleNodeClick(type)`:处理节点的点击事件,并根据节点类型展示对应的数据。同时,根据当前节点的ID,获取该节点下的用户数据,并展示在页面中。另外,还会获取下拉框数据。
5. `onSubmit()`:处理编辑数据的提交事件。
总体来说,这段代码实现了一个树形结构的页面展示和编辑数据的功能。
阅读全文