0

我在我的 Vue.js cli webpack 项目中尝试了多个不同的插件,但我都遇到了同样的问题,即一旦我包含了一个插件,我就无法使用它。

举个例子。我曾尝试在此链接上使用该插件。https://www.npmjs.com/package/vue-sessionstorage

这是我的 main.js 文件

import Vue from 'vue'
import router from './router'
import VueMaterial from 'vue-material'
import { store } from './store'
import 'vue-material/dist/vue-material.css'
import 'vue-style-loader'
import VueSessionStorage from 'vue-sessionstorage'

import App from './App'

Vue.use(VueMaterial, VueSessionStorage);


Vue.config.productionTip = false;


/* eslint-disable no-new */
new Vue({
    el: '#app',
    router,
    store,
    template: '<App/>',
    components: { App },

});

我已经运行 npm install --save vue-sessionstorage

可以看到,我也导入了 VueSessionStorage

但是,当我尝试像这样使用它时

methods: {
            login: function () {
                console.log("Login clicked");
                this.$session.set('username','simon')
                console.log(this.$session.get('username'));
            },
            register: function () {
                console.log(this.$session.get('username'));

            }
        }

我得到错误

vue.esm.js?65d7:563 TypeError: Cannot read property 'set' of undefined
    at VueComponent.login (Login.vue?2ddf:35)
    at boundFn (vue.esm.js?65d7:179)
    at Proxy.invoker (vue.esm.js?65d7:1821)
    at Proxy.Vue.$emit (vue.esm.js?65d7:2331)
    at click (mdButton.vue?3bf8:38)
    at HTMLButtonElement.invoker (vue.esm.js?65d7:1821)
handleError @ vue.esm.js?65d7:563
Vue.$emit @ vue.esm.js?65d7:2333
click @ mdButton.vue?3bf8:38
invoker @ vue.esm.js?65d7:1821
4

1 回答 1

1

Vue.use不允许像那样一次初始化多个插件。将它们初始化为两个单独的调用:

Vue.use(VueMaterial);
Vue.use(VueSessionStorage);
于 2017-10-06T21:12:12.657 回答