Vue微型架構:requestBody網絡請求的模式與自定義協議的封裝

如果我們使用vue來構架前端項目,我爲自己設計了這樣的一個小型架構,參考上一遍文章:《Jquery微型架構:requestBody網絡請求的模式與自定義協議的封裝》,在次基礎上做了一些改變。

一、 首先是程序架構


其中包含jquery和vue兩個外部包。需要下載導入。

二、頁面文件login.html文件內容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
    <script src="../js/vue.min.js"></script>
    <script src="../js/vue-resource.js"></script>

</head>
<body>

<div id="app">
    <table>
        <tr>
            <td>用戶名:</td>
            <td><input v-model="username"/></td>
        </tr>
        <tr>
            <td>密碼:</td>
            <td><input v-model="password"/></td>
        </tr>

        <tr>
            <td colspan="2">
                <button v-on:click="login" style="width: 100%">登錄</button>
            </td>
        </tr>
    </table>
    <p>{{info}}</p>
</div>
</body>
<script src="../js/login.js"></script>
</html>

三、js文件

其中properties.js、beans.js、jsonutils.ja文件和上一篇文章所講一致。

1.requestutils.js文件有所改變,要按照vue的語法進行改寫

// 把對象轉換爲json
var RequestBodyAjax = function (url, requestBody, callback) {
    Vue.http({
        url: url,
        method: "post",
        body: requestBody,
        contentType: 'application/json',
    }).then(function (response) {
        //var result = JSON.parse(response.data);
        console.debug(response.data);
        callback(response.data);
    })
}

2.關鍵的login.js也要按照vue的標準進行改寫

//爲頁面引入實體類文件
document.write("<script type='text/javascript' src='../js/properties.js'></script>")
document.write("<script type='text/javascript' src='../js/beans.js'></script>")
document.write("<script type='text/javascript' src='../js/jsonutils.js'></script>")
document.write("<script type='text/javascript' src='../js/requestutils.js'></script>")

var mVue = new Vue({
    el: "#app",
    data: {
        username: "Chris",//用戶名
        password: "gk123456",//密碼
        info: ""//顯示調試信息
    },
    methods: {
        login: function () {
            // 獲取輸入的參數
            var userName = this.username;
            var password = this.password;

            //  創建參數對象
            var params = new LoginParams();
            params.setName(userName);
            params.setPassword(password);

            //  創建請求體
            var loginRequest = new WebRequest(params);
            loginRequest.setToken("ttyyuuii");
            loginRequest.setVer("1.0");

            // 構建requestBody
            var requestBody = ToJson(loginRequest);

            // 創建請求結果回調函數
            var callback = function (data) {
                mVue.info = data;
            }

            // 發起異步請求
            var url = baseUrl + 'getUser';
            new RequestBodyAjax(url, requestBody, callback);

        }
    }
})

四、運行結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章