1. 程式人生 > >一個Vue.js的小練習

一個Vue.js的小練習

小練習

相關引用

  • bootstrap3.0用來做些樣式
  • jquery-1.12.4.min.js不知道bootstrap用來做什麼,我用它來非同步請求資料
  • vue.min.js用來資料繫結

1.佈局

<!DOCTYPE html>
<!--suppress ALL -->
<html lang="zh-CN"
      xmlns:v-bind="http://www.w3.org/1999/xhtml"
      xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset=
"UTF-8"
>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Title</title> <!-- Bootstrap --> <link href="../css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim 和 Respond.js 是為了讓 IE8 支援 HTML5 元素和媒體查詢(media queries)功能 -->
<!-- 警告:通過 file:// 協議(就是直接將 html 頁面拖拽到瀏覽器中)訪問頁面時 Respond.js 不起作用 --> <!--[if lt IE 9]> <script href="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script href="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]-->
<script src="../js/jquery-1.12.4.min.js"></script> <script src="../js/bootstrap.min.js"></script> <script src="../js/vue.min.js"></script> </head> <body> <div id="page" class="container"> <div class="row"> <!-- 使用VueJs 繫結資料 --> <div class="col-md-3 thumbnail" v-for="(value,index) in values"> <a @click="onClick(index,value)"> <img :src="value.url" class="img-rounded" style="width: 100%;height: 200px"> <div v-text="value.desc" class="pull-right"></div> </a> </div> </div> <!-- 用來載入更多的按鈕 --> <button class="btn btn-default center-block" type="submit" v-if="showBtn" @click="loadMore" v-text="label"></button> </div> </body> <script src="../js/mine/index.js"></script> </html>
屬性 簡寫 作用 名稱空間 舉例

2.實現具體功能

  在index.js檔案中對資料進行繫結,並實現功能性程式碼程式碼如下:

var page = 1;//頁數
var div = new Vue({
    el: '#page',
    data: {
        values: [],
        label: '載入更多',
        showBtn: false
    },
    methods: {
        onClick: function (index, value) {
            //開啟新的視窗
            window.open(value.url,'_blank');
        }, loadMore: function () {
            page++;
            loadPic();//載入更多
        }
    }
});

loadPic();//載入資料

/**
 * 載入圖片
 */
function loadPic() {
    $.get({
        url: 'http://gank.io/api/data/%E7%A6%8F%E5%88%A9/8/' + page,
        success: function (data) {
            var infoArg = data.results;
            console.log(infoArg.length + '條資料');
            console.log('當前頁是' + page);
            $(infoArg).each(function (index, item) {
                div.values.push(item);
            });
            if (infoArg.length > 0) {
                div.showBtn = true;
            }
        }
    });
}

練習的效果

  看樣子,在chrome中的效果還算可以。
這裡寫圖片描述

附一個Jquery遍歷插入元素的方式,不記錄一下以後還得找- -!

//接收的資料同樣是gank.io的福利圖片
function useJquery(list) {
    var gridGroup = $('#page');
    $(list).each(function (index, value) {
        gridGroup.append(
            $("<div></div>").append(
                $("<img/>").attr("src", value.url)
                    .addClass('img-rounded')
                    //設定單個屬性.css('width', '100%')
                    //設定多個屬性
                    .css({
                        'width': '100%',
                        'height': '200px'
                    })
            ).addClass("col-md-3")
        );
    })
}