整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          一看就會的vuex實現(xiàn)登錄驗證(附案例)

          一、vuex是啥?

          Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化。

          簡單來說,Vuex 類似 Redux 的狀態(tài)管理器,用來管理Vue的所有組件狀態(tài)。

          當(dāng)你打算開發(fā)大型單頁應(yīng)用(SPA),會出現(xiàn)多個視圖組件依賴同一個狀態(tài),來自不同視圖的行為需要變更同一個狀態(tài)。

          遇到以上情況時候,你就應(yīng)該考慮使用Vuex了,它能把組件的共享狀態(tài)抽取出來,當(dāng)做一個全局單例模式進行管理。這樣不管你在何處改變狀態(tài),都會通知使用該狀態(tài)的組件做出相應(yīng)修改。

          vuex大體分為如下幾部分:

          二、vuex使用

          1.首先創(chuàng)建一個vue-cli項目,這里不詳述。

          vue init webpack mylogin

          2.安裝vuex:

          npm install vuex --save

          3.在src目錄下新建文件夾store,用來存放vuex內(nèi)容

          目錄結(jié)構(gòu)如下:

          4.在main.js中引入vuex

          import Vuex from 'vuex'
          import store from './store'
          Vue.use(Vuex)

          5.在store文件夾下新建state.js,vuex用來存儲數(shù)據(jù)

          內(nèi)容如下:

          const state={
              userInfo:''
          }
          export default state;

          用來保存用戶信息,根據(jù)是否有值來判斷跳轉(zhuǎn)頁面。

          6.在store文件夾下新建.js,用來修改vuex中存儲的數(shù)據(jù)

          內(nèi)容如下:

          const mutations={
              login(state,v){
                  state.userInfo=v;
              }
          }
          export default mutations;

          7.在store文件夾下新建index.js,用來初始化vuex

          內(nèi)容如下:

          import Vue from 'vue'
          import Vuex from 'vuex'
          import state from './state'
          import mutations from './multation'
          Vue.use(Vuex);
          const store =new Vuex.Store({
              state,
              mutations
          })
          export default store;

          此時在瀏覽器中就可以看到如下(瀏覽器需增加插件vue ):

          8.本項目界面如下

          主頁面和登陸頁面

          9.login.vue提交方法如下:

          submitBtn(){
              let me=this;
              if(!me.user.username||!me.user.pwd){
                  alert("用戶名或密碼不能為空");
              }
              else {
                  this.$store.commit('login',this.user);
                  this.$router.push('./');
              }
          }

          通過commit實現(xiàn)執(zhí)行里剛才定義的login方法。即當(dāng)點擊登陸時state中的已經(jīng)被賦值。接下來通過判斷此字段是否有值來進行頁面跳轉(zhuǎn)。

          10.在main.js用router.方法對vuex中的進行判斷

          router.beforeEach(function(to,from,next){
              if(store.state.userInfo||to.path==='/login'){
                next();
              }
              else {
                next({path:'/login'})
              }
          })

          效果圖:

          登陸后:

          案例地址:

          將不斷更新完善,期待您的批評指正!


          主站蜘蛛池模板: 精品一区二区在线观看| 国产成人久久一区二区不卡三区| 国产午夜精品一区二区三区小说 | 精品亚洲AV无码一区二区| 国产一区二区四区在线观看| 免费无码VA一区二区三区| 国产A∨国片精品一区二区| 亚洲一区视频在线播放| 中文字幕一区二区三区在线不卡 | 一区二区高清在线观看| 亚洲片国产一区一级在线观看 | 日本在线电影一区二区三区| 国产精品成人一区二区三区| 国产亚洲福利一区二区免费看| 国产一区二区三区在线免费| 亚洲一区二区女搞男| 无码精品人妻一区二区三区人妻斩| 91精品一区二区三区在线观看| 久久人做人爽一区二区三区| 亚洲精品精华液一区二区| 色一乱一伦一区一直爽| 中文字幕av无码一区二区三区电影| 日韩人妻不卡一区二区三区| 国产一区二区不卡老阿姨| 精品久久久久中文字幕一区| 一区二区视频在线观看| 波多野结衣电影区一区二区三区| 亚洲色大成网站www永久一区| 51视频国产精品一区二区| 日本一区午夜爱爱| 在线视频一区二区三区| 成人国产精品一区二区网站| 精品欧洲av无码一区二区14| 区三区激情福利综合中文字幕在线一区| 日本一区二区免费看| 精品久久久久一区二区三区| 国产精品99精品一区二区三区| 亚洲国产老鸭窝一区二区三区| 日韩十八禁一区二区久久| 无码人妻精品一区二区三区久久久| 久夜色精品国产一区二区三区|