整合營銷服務(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'})
              }
          })

          效果圖:

          登陸后:

          案例地址:

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


          主站蜘蛛池模板: 国产一区二区三区福利| 狠狠做深爱婷婷久久综合一区| 久久人妻无码一区二区| 波多野结衣中文一区二区免费| 国精品无码A区一区二区| 国产av夜夜欢一区二区三区| 一区二区三区影院| 亚洲熟妇AV一区二区三区浪潮| 国产精品视频一区麻豆| 国产乱码精品一区二区三区香蕉| 无码av人妻一区二区三区四区 | 人妻少妇AV无码一区二区| 尤物精品视频一区二区三区 | 手机看片福利一区二区三区| 国产一区二区三区不卡在线看| 亚洲av无码一区二区三区人妖| 亚洲丰满熟女一区二区v| 人妻体内射精一区二区三区| 香蕉久久一区二区不卡无毒影院| 亚洲av无码一区二区乱子伦as| 三上悠亚精品一区二区久久| 免费观看一区二区三区| 国产麻豆精品一区二区三区v视界| 国产成人精品无码一区二区三区| 中文字幕VA一区二区三区| 激情内射日本一区二区三区| 日韩欧国产精品一区综合无码| 精品福利一区二区三| 日韩精品无码免费一区二区三区| 精品无码国产一区二区三区AV | 国产精久久一区二区三区| 人妻内射一区二区在线视频| 中文字幕无线码一区| 国产精品久久久久久一区二区三区 | 亚洲一区二区三区在线视频| 无码人妻精品一区二区蜜桃百度| 一区精品麻豆入口| 亚洲中文字幕丝袜制服一区 | 精品国产免费观看一区| 国产精品视频一区二区三区经 | 熟妇人妻系列av无码一区二区 |