ここで、ajax リクエスト + vue.js レンダリング + ページ読み込みの例を共有します。これは非常に参考になるので、皆さんのお役に立てれば幸いです。
1.jsのインポート
<script type="text/javascript" src="<c:url value="/resources/lib/jquery/jquery-1.11.0.min.js" />"></script> <!--标准mui.css--> <link href="<c:url value=" rel="external nofollow" rel="external nofollow" /resources/mui/css/mui.min.css" />" rel="stylesheet"> <!--App自定义的css--> <link href="<c:url value=" rel="external nofollow" rel="external nofollow" /resources/mui/css/app.css" />" rel="stylesheet"> <script src="<c:url value="/resources/vue/vue.js"/>"></script>
2.body body
<body> <p class="main"> <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">订单管理</h1> </header> <p class="mui-content"> <p class="mui-content-padded" style="margin: 10px;margin-bottom: 0px;"> <h5>请输入地址:</h5> <p class="mui-input-row mui-search"> <input type="search" id="searchInput" class="mui-input-clear" placeholder=""> </p> </p> <%--<p style="margin: 5px;margin-top: 10px;"> <input type="text" class="mui-input-clear" id="searchInput" placeholder="请输入地址" style="width: 78%;float: left;"> <button type="submit" class="mui-btn mui-btn-primary" style="margin-left: 2%;width: 18%;margin-right: 2%;padding: 8.8px 12px;" onclick="submitSearch()"> 搜索 </button> </p>--%> <p style="margin: 0 auto;clear: both;"></p> <ul class="mui-table-view mui-table-view-striped mui-table-view-condensed" id="msgUl"> <li class="mui-table-view-cell" id="list" v-for="li in list" :key="li.orderBaseId"> <p class="mui-slider-right mui-disabled" @click="orderDetail(li.orderBaseId)"> <a class="mui-btn mui-btn-grey"<%-- v-bind:href="li" rel="external nofollow" --%>/>详情</a> </p> <p class="mui-table mui-slider-handle" @click="skipDetail(li.orderBaseId)"> <p class="mui-table-cell mui-col-xs-10"> <p class="mui-table-cell"> <h4 style="display: inline;float: left;width: 100px;margin-right: 130px;">姓名:{{li.customerName}}</h4> </p> <p class="">地址:{{li.customerAddress}}</p> </p> </p> </li> </ul> </p> </p> </body>
3.jsコードブロック
<script src="<c:url value="/resources/mui/js/mui.min.js"/>"></script> <script> var vm = new Vue({ el: '.main', data: function () { return { list: [] } }, methods: { skipDetail: function (id) { window.location.href = '/mobile/admin/orderBase/getOrderBaseEditPage.action?orderBaseId='+id; }, orderDetail:function (id) { window.location.href='/mobile/admin/orderDetails/getOrderDetailsListPage.action?orderBaseId='+id; } } }); var indexs=1; leavePage(); function leavePage(srh) { if(srh==1){ indexs=1; $("#msgUl").html(""); } $.ajax({ url:'<c:url value="/mobile/admin/orderBase/getOrderBaseListJSON.action" />', async:false, data:{ customerAddress:$(".mui-input-clear").val(), page:indexs, rows:9 }, dataType:'json',//服务器返回json格式数据 contentType: "application/x-www-form-urlencoded; charset=utf-8", type:'post',//HTTP请求类型 success:function(data){ if(data.rows.length>0){ indexs+=1; } console.log(data); vm.list.push.apply(vm.list,data.rows); console.log(vm.list) } }); } $(document).ready(function(){ var range = 50; //距下边界长度/单位px var elemt = 500; //插入元素高度/单位px var maxnum = 20; //设置加载最多次数 var num = 1; var totalheight = 0; var main = $(".mui-content"); //主体元素 $(window).scroll(function(){ var srollPos = $(window).scrollTop(); //滚动条距顶部距离(页面超出窗口的高度) /* console.log("滚动条到顶部的垂直高度: "+$(document).scrollTop()); console.log("页面的文档高度 :"+$(document).height()); console.log('浏览器的高度:'+$(window).height());*/ totalheight = parseFloat($(window).height()) + parseFloat(srollPos); if(($(document).height()-range) <= totalheight && num != maxnum) { console.log(indexs); /* indexs+=1;*/ leavePage(); } }); }); //地址模糊搜索 $("#searchInput").change(function () { /*alert($(".mui-input-clear").val());*/ leavePage(1); }) /* function submitSearch() { leavePage(1); }*/ mui.init({ swipeBack:true //启用右滑关闭功能 }); </script>
上記は私が皆さんのためにコンパイルしたものです。今後の皆様の参考になれば幸いです。
関連記事:
Vue-cliでEslintを使用して自動フォーマットを実装する方法
以上がAjax リクエスト + vue.js レンダリング + ページの読み込みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。