vue登錄注冊實例詳解
步驟一
1.安裝腳手架:npm install vue-cli -g
2.wepack生成html模版:vue init webpack ' 文件名'
3.安裝axios、js-cookie、element-ui、stylus等等常用插件
步驟二
1.在main.js中引入router、element-ui等
import Vue from 'vue' import store from './store' //可以先忽略 import App from './App' import router from './router' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.config.productionTip = false Vue.use(ElementUI) /* eslint-disable no-new */ new Vue({ el: '#app', router, store, render: h => h(App) })
2.可以寫組件了
<template> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm login-container"> <el-form-item label="賬號" prop="name"> <el-input v-model="ruleForm.name"></el-input> </el-form-item> <el-form-item label="密碼" prop="pass"> <el-input type="password" v-model="ruleForm.pass" auto-complete="off"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { ruleForm: { name: '', pass: '' }, rules: { name: [ { required: true, message: '請輸入登錄賬號', trigger: 'blur' } ], pass: [ { required: true, message: '請輸入登錄密碼', trigger: 'blur' } ] } } }, }
步驟三
走到這一步就很懵逼了吧,,, 我也是,所以還是先看到效果先吧
1.注冊組件,在router文件這里
import Vue from 'vue' import Router from 'vue-router' import Login from 'components/login/index' const _import = require('./_import_' + process.env.NODE_ENV)//沒用上當(dāng)沒看見吧,我就是要寫這 Vue.use(Router) export const constantRouterMap = [ { path: '/', component:Login, name:'登錄' }, ] export default new Router({ routes: constantRouterMap })
emmmm....我猜組件應(yīng)該渲染出來了,很好!next
步驟四
關(guān)鍵性的步驟到了,看起來很難的vuex
1.第一步,先寫好接口方便調(diào)用,放在api文件夾里的login.js
import axios from 'axios' import { server } from './config' // 登陸 export const requestLogin = params => { return axios.post(server + '/jade/user/loginManage.action', params, { withCredentials: true, // 跨域憑證 transformRequest: [function(data) { let ret = '' for (const it in data) { ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&' } // axios官方文檔關(guān)于怎么用每個參數(shù)是什么說的特別特別清楚,我百度過的 return ret }], headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then(res => { return Promise.resolve(res.data) }, err => { console.log(err) }) }
2.利用js-cookie插件來存儲用戶信息
import Cookie from 'js-cookie' export function getToken() { return Cookie.get(TokenKey) } export function setToken(token) { return Cookie.set(TokenKey, token) } export function removeToken() { return Cookie.remove(TokenKey) } export function getRole() { return sessionStorage.getItem('rules') }
3.好了可以寫actions了
import { requestLogin } from 'api/login' import { getToken,setToken,removeToken } from '../../utils/auth' const user = { state: { token: getToken(), name: '', avatar: '' }, mutations: { SET_TOKEN: (state, token) => { state.token = token } }, actions: { // 登錄 Login ({commit}, userInfo) { const account = userInfo.account const password = userInfo.checkPass return new Promise((resolve, reject) => { console.log(resolve) console.log(reject) let params = { account: account, password: password } requestLogin(params).then(response => { const data = response.result setToken(data.sid) sessionStorage.setItem('accountType', data.accountType) commit('SET_TOKEN', data.sid) resolve(response) }).catch(error => { reject(error) }) }) } } } export default user
3.別忘了要注冊store
import Vue from 'vue' import Vuex from 'vuex' import user from './modules/user' Vue.use(Vuex) const store = new Vuex.Store({ modules: { user, } }) export default store
最后一步使用,回到組件
methods: { submitForm() { this.$refs.ruleForm.validate((valid)=>{ if(valid) { console.log(this.$store) this.$store.dispatch('Login',this.ruleForm).then((res)=>{ console.log(res) if(res.success) { this.$router.push({path:'/'}) }else{ this.$message.error(res.result.error) } }) } }) } }
以上就是本次介紹的全部知識點,感謝大家對腳本之家的支持。
相關(guān)文章
vue中el-table實現(xiàn)可拖拽移動列和動態(tài)排序字段
最近公司需要做個項目,需要拖拽表格和自定義表格字段,本文主要介紹了vue中el-table實現(xiàn)可拖拽移動列和動態(tài)排序字段,具有一定吃參考價值,感興趣的可以了解一下2023-12-12Vue 2源碼解析HTMLParserOptions.start函數(shù)方法
這篇文章主要為大家介紹了Vue 2源碼解析HTMLParserOptions.start函數(shù)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08vue+element UI實現(xiàn)樹形表格帶復(fù)選框的示例代碼
這篇文章主要介紹了vue+element UI實現(xiàn)樹形表格帶復(fù)選框的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04基于element-ui封裝可搜索的懶加載tree組件的實現(xiàn)
這篇文章主要介紹了基于element-ui封裝可搜索的懶加載tree組件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Vue中進(jìn)行分布式鑒權(quán)與認(rèn)證的過程
在Vue應(yīng)用中,我們通常需要實現(xiàn)分布式鑒權(quán)和認(rèn)證,以確保用戶的安全性和數(shù)據(jù)的保密性,本文將介紹在Vue中如何進(jìn)行分布式鑒權(quán)與認(rèn)證,需要的朋友可以參考下2023-06-06關(guān)于Vite不能使用require問題的解決方法
在vue2中我們通常會在模板中通過三目運算符和require來實現(xiàn)動態(tài)圖片,下面這篇文章主要給大家介紹了關(guān)于Vite不能使用require問題的解決方法,需要的朋友可以參考下2022-10-10Vue+ElementUi實現(xiàn)點擊表格鏈接頁面跳轉(zhuǎn)和路由效果
這篇文章主要介紹了Vue+ElementUi實現(xiàn)點擊表格中鏈接進(jìn)行頁面跳轉(zhuǎn)和路由,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03Vue項目三級聯(lián)動路由跳轉(zhuǎn)與傳參的思路詳解
這篇文章主要介紹了Vue項目三級聯(lián)動的路由跳轉(zhuǎn)與傳參的思路詳解,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08