两次相同的uuid + Vuex + uuidv4()

时间:2019-04-01 13:46:17

标签: javascript vue.js vuejs2 vuex uuid

我在vuex内部存储了一个创建帖子的功能。该函数返回一个uuidv4()中带有唯一uuid的json对象。但是,如果我两次(或多次)运行该函数,则会得到相同的uuid,这是一个问题。 (只有重新加载页面后,我才会获得新的uuid)。

// store.js
import uuidv4 from 'uuid/v4';
var uuid = uuidv4();
const state = {
  postDetails: {
    ...
    uuid:  uuid,
    ...
  }
}

const actions = {
  post ({state}) {
    var postArray = []
    postArray.push(state.postDetails)
    // some axios stuff...
  }
}

所以一切正常。主要问题是uuid在调用函数后不会更改。

我也使用vuex-persistedstate

1 个答案:

答案 0 :(得分:0)

针对需要此功能的人

解决了我的问题。我添加了一个无需创建页面即可创建uuid的函数。

function uuidv44() {
  return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>
    (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
  )
}

在此网站的帮助下Create GUID / UUID in JavaScript?