項目地址: Github
往期文章:
Vue實戰(一)項目分析
Vue實戰--(二)路由設計及導航欄開發
Vue實戰(三)項目配置vue
我寫好的界面是這樣的
ios
背景圖片的加載git
- 這裏要注意的一件事情,就是由於Vue-cil自動安裝了Img-loader模塊,在咱們npm run dev模擬服務器環境的時候,圖片會被打包成base64格式,因此咱們這裏的圖片引入與之前的方法不同。
<div class="login-warp" :style="{backgroundImage: 'url(' + BgImg + ')'}"> </div> //BgImg爲背景圖片的路徑,存放在data中
參考文章:vue圖片引入的三種方式
vue 動態加載圖片src的解決辦法github
登陸狀態每一個組件都用的上,因此如今咱們要用上Vuex,在npm安裝好以後,咱們要在main.js中引入vueXvuex
main.jsnpm
import store from './store/index' new Vue({ el: '#app', router, store, components: { App }, template: '<App/>' })
在src目錄下新建一個store文件夾用來存放Vuex的配置文件
store/index.jaaxios
// store index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) // 初始化時用sessionStore.getItem('user'),這樣子刷新頁面就無需從新登陸 const state = { user: window.sessionStorage.getItem('user') } const mutations = { GET_USER: (state, data) => { // 把用戶名存起來 state.user = data window.sessionStorage.setItem('user', data) }, LOGOUT: (state) => { // 登出的時候要清除用戶名 state.user = null window.sessionStorage.removeItem('user') } } const actions = { } export default new Vuex.Store({ state, mutations, actions })
參考文章:vue+axios新手實踐實現登錄segmentfault
首先Mock兩個假接口,
mock.js服務器
Mock.mock('/login', (options) => { console.log(options.body) return options.body }) Mock.mock('/register', (options) => { console.log(options.body) return options.body })
this.axios.post('/login', { user: this.validateForm.username, pass: this.validateForm.password }) .then((response) => { if (response.status === 200) { var data = JSON.parse(response.data) this.$store.commit('GET_USER', data.user) } })
這樣子就實現了登陸功能session
導航欄中的 登陸/註冊 選項,若是用戶登陸了,就把它換爲用戶名,因此咱們要修改一下導航欄,這一功能能夠藉助v-if實現
//用戶未登陸 < v-if="!this.$store.state.user" > <>登陸/註冊</> // 用戶已登陸,用戶名爲導航名 < v-else > <> {{this.$store.state.user}} </>