MUI框架-09-MUI 與后台數據交互


MUI框架-09-MUI 與后台數據交互

  • 本篇介紹使用 art-template 和原生 MUI 的數據交互 mui.ajax 來實現
  • 我們大家都知道,想要數據交互就要有數據,每次當我們發送請求,我們要清楚,怎么發,發給誰,返回的數據是什么內容,格式
  • 先放一張圖,給大家學習的動力:
  • 然后今天呢,介紹的是調用 API,API 是什么呢,就是一個接口,比如知乎日報的API ,我們可以通過這個 API 獲取到知乎上最新的消息,並且是 json 格式,我們就不用再去找數據了,其他類型 API 還有 百度語音識別,就是百度給我們一個接口,我們可以想這個接口發送 語音,然后返回給我們識別的結果,我們就沒必要就了解具體是怎么識別的
  • 【注意】:我這里收集了大量的 API ,贈送給大家:
  • 鏈接地址:中國國內 - 可用API合集

API 分析

Ajax

  • MUI Ajax 官方文檔
  • 參數呢,大家自己在官網看就可以,下面開始實戰
  • 這里我們先一起看一下,官網給出的代碼示例:如下為通過post方式向某服務器發送鑒權登錄的代碼片段:
mui.ajax('http://server-name/login.php',{
	data:{
		username:'username',
		password:'password'
	},
	dataType:'json',//服務器返回json格式數據
	type:'post',//HTTP請求類型
	timeout:10000,//超時時間設置為10秒;
	headers:{'Content-Type':'application/json'},	              
	success:function(data){
		//服務器返回響應,根據響應結果,分析是否登錄成功;
		...
	},
	error:function(xhr,type,errorThrown){
		//異常處理;
		console.log(type);
	}
});
  • 上面這段代碼就是說,ajax請求,設置一個目標地址,逗號,大括號后面是傳入的參數信息
  • 大家記住一句話 大括號開始 大括號結束就是 json 格式
  • 然后我們就根據這個做一個實例,准備呢,大家請先根據這篇創建一個簡單的頁面:MUI框架-08-窗口管理-創建子頁面
  • 然后打開我們的自己建的 html 目錄下的那個子頁面 html文件
  • 我們用下面代碼替換 init() 的 script 標簽,具體步驟寫在注釋:

<script type="text/javascript">
			mui.init()

			//plusReady,用來定義加載dom后的操作
			mui.plusReady(function() {
				
				//發起 ajax請求,地址使用知乎日報 api 
				mui.ajax('https://news-at.zhihu.com/api/4/theme/11', {
					/* data 是參數,我們這里不需要,我們只是從 api獲取數據
					data: {
						username: 'username',
						password: 'password'
					},
					*/
					dataType: 'json', //服務器返回json格式數據
					type: 'get', //HTTP請求類型
					timeout: 10000, //超時時間設置為10秒;
					headers: {
						'Content-Type': 'application/json'
					},
					success: function(data) {
						//服務器返回響應,根據響應結果,分析是否登錄成功;
						
						//我們現在控制台打印一下請求結果
				        console.log(data)
				
						//然后獲取json數據中的具體值
						console.log(data.stories[0].title)
					},
					error: function(xhr, type, errorThrown) {
						//異常處理;
						console.log(type);
					}
				});

			})
		</script>

把返回的 json 數據放在頁面 -

使用 art-template - JavaScript 模板引擎

  • 返回的數據不能就展示在控制台吧,怎么把數據放在頁面是不是也很關鍵
  • 這里要介紹另一位主角:art-template,它是高性能 JavaScript 模板引擎
  • art-template 官網: http://aui.github.io/art-template/zh-cn/index.html
  • 1.下載的話可以從官網下載
  • 2.可以直接下載我的 template -web.js:https://download.csdn.net/download/qq_40147863/10689407
  • 3.如果你會用 npm 包管理器,那么建議新建一個文件夾,因為我們只需要一個 template -web.js 文件,我們有很多都不需要

npm install art-template --save

  • 然后找到 art-template/template -web.js 文件
  • 然后我們拷貝到項目 js 目錄的下面:
  • 打開需要使用的 html 文件,在 head 標簽里加入:
<script src="../js/template-web.js"></script>
  • 然后我們看一下 art-template 官網
  • 也就是說們要使用這個 art-template,語句使用就要放在 這種 script 標簽里,做對數據的渲染
  • 第一步:把頁面上 ul 標簽里的內容都刪掉,給ul 標簽加一個id為zhihu截圖:
<ul class="mui-table-view" id="zhihu"></ul>
  • 第2步把頁面里 init 函數的那個 script 標簽刪掉,步驟,寫在注釋里了,粘貼下面這段代碼:
<!-- 引入template-web.js -->
		<script src="../js/template-web.js" type="text/javascript" charset="UTF-8"></script>
		<!-- 使用<script id="list" type="text/html"> 拼接 html -->
		<script id="list" type="text/html">
			    <!-- 循環語法 -->
			    {{each stories as list}}
				<li class="mui-table-view-cell mui-media">
					<a href="javascript:;">
						<img class="mui-media-object mui-pull-left" src="{{list.images[0]}}">
						<div class="mui-media-body">
							<!-- 獲取 title -->
							{{list.title}}
						</div>
					</a>
				</li>
				{{/each}}
			</script>
		<script type="text/javascript">
			mui.init()

			//plusReady,用來定義加載dom后的操作
			mui.plusReady(function() {
				
				//發起 ajax請求,地址使用知乎日報 api 
				mui.ajax('https://news-at.zhihu.com/api/4/theme/11', {
					/* data 是參數,我們這里不需要,我們只是從 api獲取數據
					data: {
						username: 'username',
						password: 'password'
					},
					*/
					dataType: 'json', //服務器返回json格式數據
					type: 'get', //HTTP請求類型
					timeout: 10000, //超時時間設置為10秒;
					headers: {
						'Content-Type': 'application/json'
					},
					success: function(data) {
						//服務器返回響應,根據響應結果,分析是否登錄成功;
						
						//我們現在控制台打印一下請求結果
				        console.log(data)
				        
						//然后獲取json數據中的具體值
				        //console.log(data.stories[0].title)
				        
				        //list 對應上面的 id,就是得到 拼接的 html
				        var html = template('list', data);
				        //把得到的 html 放到id為 zhihu 的 ul 標簽里
				        document.getElementById("zhihu").innerHTML = html;
				        console.log(html);

					},
					error: function(xhr, type, errorThrown) {
						//異常處理;
						console.log(type);
					}
				});

			})
		</script>

真機運行

更多文章鏈接:MUI 框架


- 本筆記不允許任何個人和組織轉載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM