null == sessions 和 sessions.sezi()==0 性能比较
时间: 2023-10-07 16:05:31 浏览: 73
在Java中,null == sessions和sessions.size()==0的性能比较是微不足道的。因为null == sessions只涉及到一个空指针判断,而sessions.size()==0也只涉及到一个变量的读取和一个整数比较。因此,两种方式都非常快速,几乎没有性能差异。但是,在使用这两种方式时要注意它们的含义:null == sessions只检查引用是否为null,而sessions.size()==0则检查集合是否为空。因此,在使用时要根据具体情况选择合适的方式。
相关问题
updateSessions(state, sessions) { let _sessions = {}; for(let row of sessions) { _sessions[row.to] = row.lastMsg; } state.sessions = _sessions; // state.sessions = sessions; },,mutation.js中的方法如上,调用时传的参数应该是什么
根据这个mutation方法的代码,可以看出它接收两个参数,分别是state和sessions。其中state是Vuex的状态对象,sessions是一个数组,其中每个元素都是一个对象,包含了to和lastMsg两个属性。
如果要调用这个mutation方法,可以通过commit方法来调用。commit方法接收一个mutation的名称和一个payload参数,payload就是传递给mutation方法的参数,它可以是任何类型的数据,比如对象、数组、字符串等等。
以传递一个包含多个to和lastMsg属性的数组sessions为例,可以这样调用mutation方法:
```javascript
// 在组件中调用mutation方法
this.$store.commit('updateSessions', sessions);
```
这样就会将sessions数组中的to和lastMsg属性转换为一个对象,然后将这个对象赋值给state.sessions,更新Vuex的状态。
## store>action.js ```js const actions = { } export default actions ``` ## store>index.js ```js import Vue from 'vue' import Vuex from 'vuex' import state from './state.js' import mutations from './mutations.js' import actions from './actions.js' Vue.use(Vuex) const store = new Vuex.Store({ state: {...state}, mutations: {...mutations}, actions: {...actions} }) export default store ``` ## store>mutations.js ```js import NIM_SDK from '@yxim/nim-web-sdk/dist/SDK/NIM_Web_NIM_miniapp' import nim_config from '@/config/nim_config.js' import Vue from 'vue' const mutations = { initNim(state) { const NIM = NIM_SDK.getInstance({ ...nim_config, }); Vue.prototype.$nim = NIM; }, pushMsg(state, msg) { state.msg.push(msg); console.log(state.msg); }, updateSessions(state, sessions) { let _sessions = {}; for(let row of sessions) { _sessions[row.to] = row.lastMsg; } state.sessions = _sessions; // state.sessions = sessions; }, } export default mutations ``` ## store>state.js ```js const state = { is_login: false, token: '', refresh_token: '', user_info: {}, sessions: {}, // 会话列表 msg: [], // 消息内容 friends: [], //会话好友 } export default state ```这些代码里边怎么调用云信中的uodateSession接口
在上述代码中,可以在 `mutations.js` 文件中调用云信中的 `updateSessions` 接口。具体实现方法如下:
1. 在 `mutations.js` 文件中引入云信 SDK,可以使用类似下面的方式引入:
```js
import NIM_SDK from '@yxim/nim-web-sdk/dist/SDK/NIM_Web_NIM_miniapp';
```
2. 在 `mutations.js` 文件中编写更新会话列表的代码,可以使用类似下面的方式调用 `updateSessions` 接口:
```js
updateSessions(state, sessions) {
let _sessions = {};
for (let row of sessions) {
_sessions[row.to] = row.lastMsg;
}
state.sessions = _sessions;
// state.sessions = sessions;
const nim = Vue.prototype.$nim;
nim.updateSessions({
sessions,
done: (error, obj) => {
console.log('updateSessions', error, obj);
},
});
},
```
其中,`Vue.prototype.$nim` 是通过在 `actions.js` 文件中进行初始化后挂载到 `Vue.prototype` 上的云信 SDK 对象。在调用 `updateSessions` 接口时,需要传入会话列表 `sessions` 和一个回调函数,用于处理接口返回的结果。
需要注意的是,在调用 `updateSessions` 接口时,需要确保当前用户已经登录云信,并且传入的会话列表 `sessions` 是正确的。
阅读全文