SPA專案開發之登入註冊

2021-09-26 16:15:53 字數 3968 閱讀 7374

npm install element-ui -s

npm install axios -s

npm install qs -s

npm install vue-axios -s

element-ui

新增頁面效果,元件

axios

axios是vue2提倡使用的輕量版的ajax。它是基於promise的http庫。它會從瀏覽器中建立xmlhttprequests,與vue配合使用非常好。

qsqs.js它是乙個url引數轉化的js庫。用法就兩個:

var obj = qs.parse(『a=b&c=d』); //將url解析成物件的形式:

var str = qs.stringify(obj); //將物件 序列化成url的形式,以&進行拼接:a=b&c=d』

vue-axios

vue-axios是在axios基礎上擴充套件的外掛程式,在vue.prototype原型上擴充套件了$http等屬性,可以更加方便的使用axios

"dependencies": ,
2.引入main.js配置測試

修改helloworld.vue 新增 elementui 元件檢視效果

vue+elementui 設計登陸頁面

注1 :相關樣式見資料「 css.txt 」

css.txt

注2:在vue元件中,在style標籤上新增scoped屬性,以表示它的樣式作用於當下的模組,很好的實現了樣式私有化的目的

注2:auto-complete=「off」

autocomplete 屬性是 html5 中的新屬性,off-----禁用自動完成

3. 後台互動(axios/qs/vue-axios)

3.1 axios

axios是vue2提倡使用的輕量版的ajax。它是基於promise的http庫。它會從瀏覽器中建立xmlhttprequests,與vue配合使用非常好。

login.vue

登入使用者註冊

忘記密碼

reg.vue

登入使用者登入

忘記密碼

action.js

/**

* 模組名_實體名_操作

*/export default

}

index.js

import vue from 'vue'

import router from 'vue-router'

import home from '@/components/home'

import login from '@/views/login'

import reg from '@/views/reg'

vue.use(router)

export default new router(,

, ]})

main.js

// the vue build version to load with the `import` command

// (runtime-only or standalone) has been set in webpack.base.conf with an alias.

import vue from 'vue'

import 'element-ui/lib/theme-chalk/index.css' // 新新增 2 ,避免後期打包樣式

import router from './router'

import elementui from 'element-ui' // 新新增 1

new vue()

axios跨域問題

配置tomcat允許跨域訪問

public class corsfilter implements filter 

// @override

// public void dofilter(servletrequest servletrequest, servletresponse

// servletresponse, filterchain filterchain)

// throws ioexception, servletexception

// //

// filterchain.dofilter(servletrequest, servletresponse);

// }

@override

public void dofilter(servletrequest servletrequest, servletresponse servletresponse, filterchain filterchain)

throws ioexception, servletexception

filterchain.dofilter(servletrequest, servletresponse);

} @override

public void destroy()

}

注1:axios跨域問題

會一直報錯:「 has been blocked by cors policy: no 『access-control-allow-origin』 header」

因為使用了前後端分離開發,跨域訪問了,解決方案:需要配置tomcat允許跨域訪問,

tomcat跨域配置方法很多,但最簡單的方式是自己寫乙個過濾器corsfilter實現,新增乙個響應頭

access-control-allow-origin即可

httpresponse.addheader(「access-control-allow-origin」, 「*」);//*表示任何網域名稱

access-control-allow-origin:*                           #則允許所有網域名稱的指令碼訪問該資源。

access-control-allow-origin: #允許特定的網域名稱訪問

注2:axios.get提交沒有問題,axios.post提交後台接收不到資料

因為post提交的引數的格式是request payload,這樣後台取不到資料的(詳情見資料「05 vue中axios踩坑之路-post傳參 - rainsun - csdn部落格.mht」),

解決方案:使用qs.js庫,將轉換成』a=b&c=d』

a xios 的 get/post 的區別( qs )

get提交

axios.get(』/user』,

}).then(function (response) ).catch(function (error) );

post提交

axios.post(』/user』, ).then(function (response) ).catch(function (error) );

SPA專案開發之登入註冊

1 使用vue cli腳手架工具建立乙個vue專案 vue init webpack pro01 2 npm安裝elementui cd pro01 進入新建專案的根目錄 npm install element ui s 安裝element ui模組 重要的事情說三遍 在指定位置 在指定位置 在指定...

SPA專案開發之登入

然後我們開啟dos命令建立以下 npm install axios s npm install qs s npm install vue axios s 注意一條一條的輸入不要著急 在專案中src目錄下找到main.js,並在指定位置新增三行 main.js是入口檔案,所以在這裡引入就行,頁面就不用...

SPA專案開發之登入

1.1 使用vue cli腳手架工具建立乙個vue專案 vue init webpack pro01 1.2 npm安裝elementui cd pro01 進入新建專案的根目錄 npm install element ui s 安裝element ui模組 重點 在指定位置 在指定位置 在指定位置...