Vuejs изменить данные VUEX хранить состояние извне приложения - PullRequest
0 голосов
/ 04 января 2019

У меня есть, например, app.js с store.js.После выполнения npm run dev я получаю .js, который я могу включить в страницу, включая <div>

. Теперь я хочу изменить state.baseurl извне с помощью JavaScript, например:

var options = {
    baseurl:  'http://www.domain.co/'
}

Возможно ли это и как мне этого добиться?

App.js

window.Vue = require('vue')
import store from './store'
import adrescheck from '../../../../../../../../resources/assets/js/vuecomponenten/components/check'
Vue.component('check', check)
import app from './app.vue'

const app = new Vue({
    el: '#app',
    store,
    render: h => h(app)

});

Store.js

window.Vue = require('vue');

import Vuex from 'vuex'

Vue.use(Vuex)

const store = {
    state: {
        baseurl: 'http://www.domain.nl/'
    }
}

export default new Vuex.Store(
    store
);

Редактировать:

Когда я делаю npm, запускаю watch-poll / dev / prod, он сгенерирует .js и скопирует его с веб-пакетом в общую папку.Из другого домена я хочу включить этот js И , чтобы манипулировать state.baseurl из этого домена.Итак, внедрение зависимости.

1 Ответ

0 голосов
/ 05 января 2019

Если я правильно понимаю, я думаю, что лучший способ сделать это - просто использовать плагин определения webpack .

Каждый ключ, передаваемый в DefinePlugin, является идентификатором илинесколько идентификаторов, соединенных с ..

Если значение является строкой, оно будет использоваться как фрагмент кода.Если значение не является строкой, оно будет строковым (включая функции).Если значение является объектом, все ключи определяются одинаково.Если вы добавите typeof к ключу, он определен только для вызовов typeof.Значения будут вставлены в код, позволяющий проходу минификации удалить лишнее условное выражение.

new webpack.DefinePlugin({
  PRODUCTION: JSON.stringify(true),
  VERSION: JSON.stringify('5fa3b9'),
  BROWSER_SUPPORTS_HTML5: true,
  TWO: '1+1',
  'typeof window': JSON.stringify('object'),
  'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
});

, затем в js

if (!PRODUCTION) {
  console.log('Debug info');
}

if (PRODUCTION) {
  console.log('Production log');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...