Vue+jQuery+axios練習小案例【隨機獲取笑話】
阿新 • • 發佈:2020-12-23
技術標籤:前端學習版塊vuejqueryaxios非同步訪問htmlcss
文章目錄
一、效果演示
二、完整程式碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
< title>Document</title>
<!-- 引入vue.js和axios.js和jquery.js -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js" ></script>
<style>
input {
height: 30px;
line-height: 30px;
}
#inputDiv {
text-align: center;
}
#jbtn {
line-height: 30px;
}
p {
width: 100%;
padding: 5px;
}
</style>
</head>
<body>
<div id="jokeDiv">
<div id="inputDiv">
<input type="text" placeholder="請輸入要獲取的笑話數量" id="jcount" v-model="jcount">
<input type="button" value="獲取隨機笑話" @click="getJokes" id="jbtn">
</div>
<br>笑話內容:
<hr>
<p v-for="joke in jokes">{{joke}}</p>
</div>
</body>
<script>
/*
get請求方式:
格式1: axios.get(地址?key=value&key2=value2).then(function(response){},function(error){});
格式2: axios.get(地址,{params:{key1:value1...}}).then(function(response){},function(error){});
*/
/*
介面1:隨機笑話
請求地址:https://autumnfish.cn/api/joke/list
請求方法:get
請求引數:num(笑話條數,數字)
響應內容:隨機笑話
*/
new Vue({
el: "#jokeDiv",
data: {
jcount: 1,
jokes: [],
},
methods: {
getJokes: function () {
var t = this; //將物件先記錄下來 重要
//傳送axios非同步請求
axios.get("https://autumnfish.cn/api/joke/list", { params: { "num": this.jcount } }).then(
function (response) {
t.jokes = response.data.jokes; //修改該vue物件的資料
}, function (error) {
})
}
},
updated() {
//記憶體中的資料和頁面上的資料一致時,將所有p標籤的背景色修改
var colors = ['#FFCCCC', '#FFFF99', '#FFCC99', '#CCFF99', '#CCCCCC', '#FFFFCC', '#CCCCFF', '#99CCFF'];
var $plist = $("p")
//console.log($plist)
//jquery的物件方法遍歷
$plist.each(function(index,element){
var randomIndex = parseInt(Math.random() * colors.length);
console.log(element)
$(element).css("background-color", colors[randomIndex])
})
}
})
</script>
</html>
三、相關說明
- jquery中遍歷時不能使用for of語法,因為jquery3才開始支援for of