【问题标题】:Vue: import object in vuex store stateVue:在 vuex 存储状态下导入对象
【发布时间】:2019-02-27 12:20:28
【问题描述】:

我正在向 vuex 商店添加各种设置,我通过各种组件使用和更新。 设置被细分为对象,但是store.js文件变得很长,有没有关于如何从独立文件中导入这些对象的选项,以便概览更清晰,每个设置都可以有自己的文件?

export const store = new Vuex.Store({
    state: {

        // @import settings1 from 'settings1.js'
        // @import settings2 from 'settings2.js
        // @import settings3 from  'settings3.js
        // ...

        // instead of adding objects like this:
        settings1: {
            name1: value1,
            name2: value2,
            name3: value3,
            // ...
        },
        settings2: {
            name1: value1,
            name2: value2,
            name3: value3,
            // ...
        },
        settings3: {
            name1: value1,
            name2: value2,
            name3: value3,
            // ...
        }
    }
});

【问题讨论】:

    标签: vuejs2 vuex


    【解决方案1】:

    您将导出对象以插入到您的父对象中。

    import settings1 from './settings1'
    import settings2 from './settings2'
    
    // or 
    
    const settings1 = require('./settings1')
    const settings2 = require ('./settings2')
    
    export const store = new Vuex.Store({
        state: {settings1,settings2}
    });
    

    settings1.js

    module.exports = {
       value1: 1,
       value2: 2,
    }
    
    // or even better if using `import` instead of `require`
    
    export default {
       value1: 1,
       value2: 2,
    }
    

    settings2.js

    module.exports = {
       value3: 2,
       value4: 4,
    }
    
    // or even better if using `import` instead of `require`
    
    export default {
       value3: 3,
       value4: 4,
    }
    

    【讨论】:

      【解决方案2】:

      我认为这与普通 js 中的工作方式相同,并且工作方式如下:

      import settings1 from './settings1'
      import settings2 from './settings2'
      import settings3 from  './settings3'
      
      export const store = new Vuex.Store({
          state: {
              settings1,
              settings2,
              settings3
          }
      });
      

      【讨论】:

      • 是的,但是它们返回一个字符串而不是一个对象,我似乎无法在这个字符串上使用 JSON.parse?
      • 你是从你的 settings.js 中导出一个字符串吗?请尝试导出一个对象。
      • 尝试如下:module.exports.setting1 = { setting1: 'Setting value 1', setting2: 'Setting value 2' }
      • 在 settings1.js 中使用 module.exports = { setting1: 'Setting value 1', setting2: 'Setting value 2' } 或使用 import {setting1} from './settings1'
      猜你喜欢
      • 2020-06-21
      • 1970-01-01
      • 2020-10-22
      • 2020-08-13
      • 2019-12-19
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多