2017-10-06 71 views
-1

我已经尝试了多个不同的插件与我的Vue.js cli webpack项目,我也遇到了同样的问题,即一旦我包含插件,我无法用它。Vue.js如何使用npm插件

作为一个例子。我试图在这个链接上使用插件。 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安装--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 
+3

您是否试过'Vue.use(VueMaterial); Vue.use(VueSessionStorage);'? – ceejayoz

+0

请不要在此处呼叫人名。评论不需要留下评论,人们应该期待偶尔的驾驶。 – ceejayoz

+0

如果那个离开投票但没有时间通过​​评论来教育我和他人智慧的人想留下一个迟来的评论,我不会称他们为低生命。 – PrestonDocks

回答

0

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

Vue.use(VueMaterial); 
Vue.use(VueSessionStorage);