vue引入全局js,给vue定义全局的方法

  vue引入全局js,给vue定义全局的方法

  本文主要介绍了在Vue中添加全局存储的方法,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

  

目录

   Vue添加全球商店。在命令行上输入安装在main.js文件中的引用。在src中创建一个页面文件,在src下创建一个存储文件。解释如何使用商店。vuex包含五个基本对象,vuex,模块间的方法调用store的action方法。

  

Vue添加全局store

  

在命令行中输入安装

  npm安装-保存vuex

  

在main.js文件中引用

  并声明存储在新Vue中。

  从导入存储。/商店

  店,

  

在src中创建一个page文件

  在页面文件下创建该模块的js文件(内容如下)

  常量状态={

  家庭状态:{

  LoginStatus:false

  },

  用户:[],

  }

  常量突变={

  [setuseinfo](状态,数据){

  },

  }

  常量操作={

  }

  

在src下创建一个store文件

  在存储文件下创建一个索引js文件

  从“vue”导入Vue

  从“vuex”导入Vuex

  从以下位置导入页面./页面/模块

  Vue.use(Vuex)

  导出默认的新Vuex。商店({

  状态:{},

  模块:{

  页,面,张,版

  }

  })

  

store使用方法讲解

  

vuex 包含有五个基本的对象

  状态:存储状态。也就是变量;吸气剂:派生状态。也就是说,进入集合并得到。有两个可选参数:state和getters可以分别在state和other getters中获取变量。外部调用方法:store.getters.personInfo()。就像vue的计算一样;突变:提交状态修改.即set in set and get。这是在vuex中修改状态的唯一方法,但是不支持异步操作。默认情况下,第一个参数是state。外部调用方法:store.commit(set _ age ,18)。和vue里的方法差不多。动作:类似于突变。但是,actions支持异步操作。默认情况下,第一个参数是与store具有相同参数属性的对象。外部调用方法:store.dispatch(nameAsyn )。这个。$ store.dispatch(用户/登录,这个。LoginForm)模块:商店的一个子模块,内容相当于商店的一个实例。调用的方法和前面描述的类似,只是增加了当前子模块名,比如:store.a.getters.xxx()。

  从“vue”导入Vue

  从“vuex”导入Vuex

  从导入状态。/state.js

  从导入getters。/getters

  从导入突变。/mutations.js

  从导入操作。/actions.js

  //安装Vue Devtools调试工具https://blog.csdn.net/li22356/article/details/113092495.

  //mount Vuex,帮助手册https://www.jianshu.com/p/2e5973fe1223

  //模块化请参考https://www.jb51.net/article/150752.htm。

  vue . use(Vuex);

  //创建一个VueX对象,使用H1 { { $ store . state . name } }/h1 console . log(this。$ store.state.name)

  //添加状态对象Vue.set(state, age ,15)和删除Vue.delete(state, age )

  const store=new Vuex。商店({

  //存储数据,存储状态

  //使用方法

  状态,

  //对外处理状态成员

  //声明当前VueX对象中的状态对象

  //getters当前getters对象用于使用getters下的其他getters。

  //组件使用此。$store.getters.fullInfo

  吸气剂,

  //状态成员操作,操作状态数据的方法集合,如修改、添加、删除等。

  //组件调用this.store.commit (set _ token , newtoken) mount方法。

  //同步处理

  突变,

  //异步处理

  //用这个。组件中的store . dispatch(“a edit”、“new token”)

  行动

  });

  导出默认值()={

  退货商店

  }

  从“vue”导入Vue

  从“vuex”导入Vuex

  Vue.use(Vuex)

  导出默认的新Vuex。商店({

  //将全局参数放在这里,如用户登录信息

  状态:{

  token:“hello vuex”,

  名称: ,

  年龄:“”

  },

  突变:{

  //这里是设置的方法,比如这个数据的修改,添加,删除等等。

  //组件调用this.store.commit (set _ token , newtoken) mount方法。

  SET_TOKEN: (state,token)={

  state.token=令牌

  控制台. log(state . token);

  }

  },

  //getters当前吸气剂对象(可对对象进行二次更改),用于将吸气剂下的其他吸气剂拿来用,组件通过这个store.getters.fullInfo拿来使用

  getters: {

  令牌:state=state.token

  名称信息(州){

  返回姓名: state.name

  },

  fullInfo(state,getters) {

  返回 getters.nameInfo 年龄: state.age

  }

  },

  //异步处理

  //组件中使用这个store.dispatch(aEdit ,新令牌)

  动作:{

  QQlogin({commit},token) {

  返回新承诺((解决,拒绝)={

  塞托肯(令牌);//把代币存放到甜饼干里

  提交( SET_TOKEN ,TOKEN)//提交调用突变数据

  解决()

  })

  },

  aEdit(上下文,有效负载){

  返回新承诺((解决,拒绝)={

  setTimeout(()={

  context.commit(SET_TOKEN ,有效负载)

  解决()

  }, 2000)

  })

  }

  },

  模块:{

  //这里是我自己理解的是为了给全局变量分组,所以需要写提前声明其他商店文件,然后引入这里

  }

  })

  

vuex,module间的方法调用

  我们用状态管理时通常会分功能创建多的模块,单个组件里的操作大家应该很清楚,那多个组件之间怎么调用了?

  详细代码:

  现在我有两个模块:用户和菜单,要在用户中调用菜单的行动方法,操作如下:

  const user={

  状态:{

  权限:[]

  },

  突变:{

  SET_PERMISSIONS: (state,permissions)={

  状态.权限=权限

  }

  },

  动作:{

  getPermissions({commit}) {

  queryPermissions().然后(res={

  会话存储。setitem( permissions ,JSON.stringify(res))

  this.dispatch(setPermissions ,RES);//调本组件里的方法

  })

  },

  setPermissions({commit,dispatch,state,rootState},data) {

  提交( SET_PERMISSIONS ,数据);//本组件的犯罪

  分派( setMenuData ,数据);//调菜单里的方法

  控制台。日志(根状态。菜单。菜单);//取菜单里的参数

  }

  }

  }

  导出默认用户

  常量菜单={

  状态:{

  菜单:[]

  },

  突变:{

  SET_MENUS: (state,data)={

  state.menus=data

  }

  },

  动作:{

  setMenuData({commit,state},data) {

  提交(设置菜单,数据);

  }

  }

  }

  导出默认菜单

  解释:

  行动里各个方法的第一个参数其实有很多属性,只是我们平时习惯了解构的写法,如setMenuData({commit,state},Data)。当把第一个参数的值全输出,如setMenuData(param,Data),输出参数会发现其中包含以下属性:

  

vue文件调用store的action方法

  常量操作={

  //根据权限动态生成路由

  异步生成路由({提交}) {

  //执行代码

  }

  }

  已创建(){

  this.generateRoutes()

  },

  方法:{

  .mapActions(菜单,[

  "生成路由"

  ])

  }

  以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: