第5章-Vue.js交互及生命周期练习
一、學習目標
- 使用網絡請求進行前后端交互 (重點)
- 理解鉤子函數的作用? (難點)
- 掌握Vue.js過濾器的使用方法
- 了解Vue.js事件的深入用法? (重點)
二、仿寫留言板
2.1、實現"顯示評論"按鈕的功能
- 使用網絡請求,請求"請求列表" 數據
- 解析 "評論列表" 數據
- 展示"評論列表的數據"
2.2、點擊顯示評論,顯示數據
說明:當我們點擊評論的時候,則顯示相關數據,測試第三方接口:http://api.artgoer.cn:8084/artgoer/api/v1/user/324380/v3/topic/topicHomeByLabel?pageIndex=1&token=b544cd63-6d42-46fe-a96c-3cf96bae3113&topicId=62187
<body><div id="box"><button @click="search">顯示評論</button><ul><li v-for="item in arr"><h4>{{ item.commentTxt }}</h4><p>{{ item.createAt | time }}</p></li></ul></div><script src="js/vue.js"></script><script src="js/vue-resource.js"></script><script>//定義過濾器 Vue.filter('time',function(val){//只顯示日期,不顯示時間//方法:字符串的截取:substr(start,length)return val.substr(0,10);});var vm = new Vue({el: "#box",data: {arr: []},methods: {search: function(){this.$http.get("http://api.artgoer.cn:8084/artgoer/api/v1/user/324380" +"/v3/topic/topicHomeByLabel?pageIndex=1&" +"token=b544cd63-6d42-46fe-a96c-3cf96bae3113" +"&topicId=62187").then(function(res){//then()中如果只傳入一個處理函數,那么默認是處理請求成功的情況//console.log(res.data);this.arr = res.data.data.commentList;})}}});</script> </body> 顯示評論2.3、無需點擊,自動顯示評論
說明:因為我們再顯示評論的時候,一般情況下不需要任何操作,自動顯示評論,所以我們就應該在 vue 對象創建之前 就應該加載這部分數據,所以我們就會使用到 beforeCreate的鉤子。所以優化后的代碼,如下:
<body><div id="box"><button>顯示評論</button><ul><li v-for="item in arr"><h4>{{ item.commentTxt }}</h4><p>{{ item.createAt | time }}</p></li></ul></div><script src="js/vue.js"></script><script src="js/vue-resource.js"></script><script>//定義過濾器 Vue.filter('time',function(val){//只顯示日期,不顯示時間//方法:字符串的截取:substr(start,length)return val.substr(0,10);});var vm = new Vue({el: "#box",data: {arr: []},beforeCreate: function(){this.$http.get("http://api.artgoer.cn:8084/artgoer/api/v1/user/324380" +"/v3/topic/topicHomeByLabel?pageIndex=1&" +"token=b544cd63-6d42-46fe-a96c-3cf96bae3113" +"&topicId=62187").then( function(res){//then()中如果只傳入一個處理函數,那么默認是處理請求成功的情況//console.log(res.data);this.arr = res.data.data.commentList;});}});</script> </body> 頁面數據自動加載小結:
- 使用網絡請求進行前后端交互
- 理解鉤子函數的作用 (難點)
- 賬務Vue.js過濾器的使用方法
三、仿寫百度搜索框
3.1、Vue中事件對象的獲取
語法:
@click=fn($event) $event: 對象實例:
<body><div id="box"><!--傳入事件對象$event--><div class="div1" @click="fn($event)"></div></div><script src="js/vue-resource.js"></script><script src="js/vue.js"></script><script>var vm = new Vue({el: "#box",data:{},methods: {fn: function(e){//e: event事件對象,e.clientX,e.clientY為 鼠標的坐標 console.log(e.clientX,e.clientY);}}});</script> </body> 事件對象的獲取3.2、事件修飾符
概念:v-on指令提供了時間修飾符來處理DOM事件細節
按鍵修飾符:.enter,.up,.down 等等
prevent修飾符:阻止事件的默認行為
語法:
<input type="text" @keydown.up="fn()" @keydown.down="fn2()"/> //按鍵按下后執行的事件具體使用:
<body><div id="box"><input type="text" @keydown.up="fn1()"/><input type="text" @keydown.down="fn2()"/><!--事件修飾符:vue中提供的處理DOM事件細節的方式按鍵修飾符:.up,.down,.ctrl,.enter,.space....語法:@click.修飾符='fn'--></div><script src="js/vue-resource.js"></script><script src="js/vue.js"></script><script>var vm = new Vue({el: "#box",data:{},methods: {fn1: function(){console.log("up");},fn2: function(){console.log("down");}}});</script> </body> 事件修飾符3.3、仿寫百度搜索框和練習
① 搜索需求:實現搜索框的搜索功能
- 對用戶在輸入框內輸入的值進行雙向數據綁定。
- 點擊 "搜索" 按鈕,進行網絡請求
- 將請求會的數據在搜索框下進行展示
?②練習需求:實現通過方向鍵控制搜索選項
- 綁定上下方向鍵的處理函數
- 對展示的數據進行樣式綁定
這里面用到了一些事件修飾符。
3.4、事件執行機制
事件執行機制:
- 根 -> 元素1 -> 元素2 -> 事件源(target)
- 先捕獲,后冒泡
- 捕獲:從根 到 事件源
- 冒泡: 從事件源 到 根
示例:
<head><meta charset="UTF-8"><title>Title</title><style>div {width: 100px;height: 100px;}.div1 {background: pink;padding: 50px;}.div2 {background: yellow;}</style> </head> <body><!--事件執行機制:根 -> 元素1 -> 元素2 -> 事件源(target)先捕獲,后冒泡捕獲:從根 到 事件源冒泡: 從事件源 到 根--><div id="box"><div class="div1" @click="fn1"><div class="div2" @click="fn2"></div></div></div><script src="js/vue.js"></script><script>var vm = new Vue({el: "#box",data: {},methods: {fn1: function(){console.log("fn1");},fn2: function(){console.log("fn2");}}});</script> </body> 事件執行機制結果:
>>>fn2 >>>fn1結果得出:事件執行是 從 源 到 根依次執行,那我執行事件源,不想執行 除事件源之外的 事件,如下:stop:阻止冒泡
<div class="div2" @clicl.stop="fn2"></div>更多事件處理:
事件處理:https://cn.vuejs.org/v2/guide/events.html
事件修飾符:https://cn.vuejs.org/v2/guide/events.html#事件修飾符
按鍵修飾符:https://cn.vuejs.org/v2/guide/events.html#按鍵修飾符
四、小結
- 重點:能夠使用網絡請求進行前后端交互
- 難點: 理解鉤子函數的作用
- 注意事項:修飾符可以串聯使用:@click.prevent.stop="fn"。
轉載于:https://www.cnblogs.com/zhangqigao/p/9604070.html
總結
以上是生活随笔為你收集整理的第5章-Vue.js交互及生命周期练习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改Docker0网桥默认网段
- 下一篇: vue - .babelrc