亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

VUE利用vuex模擬實現新聞點贊功能實例

2019-11-19 16:13:39
字體:
來源:轉載
供稿:網友

回顧新聞詳細頁

很早我們的新聞詳情頁是在news-detail.vue 組件里,獲取服務器數據,然后把數據保持到組件的data 里,既然我們已經用到了vuex,學習了它的state,我們就應該想到把返回的數據交給state 來存儲。

1.首先在Vuex.Store 實例化的時候:

  state:{    user_name:"",    newslist:[],    newsdetail:{}  },

增加一個newsdetail 對象,newslist 數組是我們前面用來保存新聞列表數據的。

2.下面就要看在news-detail.vue 組件里,怎么請求數據,然后交給newsdatail :

<script>  export default{    // 創建的時候[生命周期里]    created(){      this.$http.get("http://localhost/newsdetail.php?id="+this.$route.params.newsid).then(function(res){        this.$store.state.newsdetail = res.body;      },function(res){        // 處理請求失敗      });    },  }</script>

通過this.$store.state.newsdetail = res.body; 就把服務器返回的新聞詳細數據保存起來了。

3.那么模板上怎么展示?

<div class="page-header">  <h2>{{this.$store.state.newsdetail.title}}<small>{{this.$store.state.newsdetail.pubtime}}</small></h2>  <p>點贊數:{{this.$store.state.newsdetail.agree}} <button class="btn btn-success">點贊</button></p>  <p>{{this.$store.state.newsdetail.desc}}</p></div>

這里寫圖片描述

這里我們要來實現一個點贊功能

點擊“點贊”按鈕,就更改點擊數。

其實就是更改newsdetail 里的agree 屬性。

本文參考文檔:https://vuefe.cn/vuex/actions.html

import Vuex from 'vuex';Vue.use(Vuex);const vuex_store = new Vuex.Store({  state:{    user_name:"",    newslist:[],    newsdetail:{}  },  mutations:{    showUserName(state){      alert(state.user_name);    },    setAgree(state,agreeNum){      state.newsdetail.agree = agreeNum;    }  },  actions:{    agree(context,newsid){      // 進行請求,獲取點贊后的agree字段屬性值      Vue.http.post("http://localhost/agree.php",{newsid:newsid},{emulateJSON:true}).then(function (res) {        // 處理業務        // 調用上面setAgree方法更新點贊數        context.commit("setAgree",res.body.agree);      },function(){})    }  },  getters:{    getNews(state){      return state.newslist.filter(function (news) {        return !news.isdeleted;      })    }  }})

actions 里定義了一個方法agree 發送網絡請求,獲取最新的點贊數。

同時mutations 里定義了一個setAgree 方法,用來同步頁面上的點贊數。

    agree(context,newsid){      // 進行請求,獲取點贊后的agree字段屬性值      Vue.http.post("http://localhost/agree.php",{newsid:newsid},{emulateJSON:true}).then(function (res) {        // 處理業務        // 調用上面setAgree方法更新點贊數        context.commit("setAgree",res.body.agree);      },function(){})    }

重點說明:這里發送http請求,和組件里不一樣,需要注意。

那么,組件里怎么調用這里的agree 方法呢?

<button class="btn btn-success" @click="submitAgree">點贊</button>
    methods:{      submitAgree(){        // 組件了調用actions里定義的agree方法        this.$store.dispatch("agree",this.$store.state.newsdetail.id)      }    }

news-detail.vue 組件全部代碼:

<template>  <div class="news-detail">    <div class="row">      <div class="page-header">        <h2>{{this.$store.state.newsdetail.title}}<small>{{this.$store.state.newsdetail.pubtime}}</small></h2>        <p>點贊數:{{this.$store.state.newsdetail.agree}} <button class="btn btn-success" @click="submitAgree">點贊</button></p>        <p>{{this.$store.state.newsdetail.desc}}</p>      </div>    </div>  </div></template>  <script>  export default{    // 創建的時候[生命周期里]    created(){      this.$http.get("http://localhost/newsdetail.php?id="+this.$route.params.newsid).then(function(res){        this.$store.state.newsdetail = res.body;      },function(res){        // 處理請求失敗      });    },    methods:{      submitAgree(){        // 組件了調用actions里定義的agree方法        this.$store.dispatch("agree",this.$store.state.newsdetail.id)      }    }  }</script>

這里寫圖片描述 

后端程序增加點贊數,這里就不贅述了。只需返回一個json對象:

{"status":"success","agree":100}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩国产成人| 国产精品久久久久免费a∨| 国产精品18久久久久久麻辣| 亚洲精品中文字| 欧美性猛交xxxx富婆弯腰| 欧美午夜www高清视频| 色综合久久精品亚洲国产| 在线观看中文字幕亚洲| 亚洲激情视频在线| 亚洲一区二区三| 最新的欧美黄色| 日韩一区二区三区xxxx| 欧美精品久久久久久久免费观看| 久久99亚洲热视| 欧美日韩成人免费| 成人免费在线视频网站| 国产剧情久久久久久| 97婷婷涩涩精品一区| 精品在线观看国产| 久久久久久久久久av| 欧美中文字幕视频| 日韩美女在线观看一区| 成人动漫网站在线观看| 狠狠久久五月精品中文字幕| 欧美成年人在线观看| 欧美性高跟鞋xxxxhd| 久久色免费在线视频| 国产亚洲xxx| 26uuu亚洲国产精品| 国模私拍视频一区| 日韩欧美中文字幕在线播放| 日韩欧美国产免费播放| 亚洲国产古装精品网站| 51ⅴ精品国产91久久久久久| 伊人久久大香线蕉av一区二区| 久久琪琪电影院| 国产精品一区二区3区| 人妖精品videosex性欧美| 国产成人亚洲精品| 亚洲а∨天堂久久精品喷水| 欧日韩在线观看| 久久夜色精品亚洲噜噜国产mv| 欧美性高潮床叫视频| 在线观看国产精品91| 77777少妇光屁股久久一区| 97在线免费观看| 国产亚洲精品一区二区| 国产精品视频久久久久| 欧美成年人视频网站| 亚洲欧美国产精品专区久久| 色综合91久久精品中文字幕| 成人福利网站在线观看| 777国产偷窥盗摄精品视频| 日韩在线国产精品| 亚洲深夜福利网站| 亚洲人午夜精品| 狠狠躁18三区二区一区| 久久视频精品在线| 91av在线影院| 亚洲伊人成综合成人网| 久久久久久久久久久国产| 久久亚洲精品一区| 亚洲欧美国产va在线影院| 国产精品免费久久久久影院| 日韩电视剧免费观看网站| 中文字幕在线日韩| 性欧美亚洲xxxx乳在线观看| 97超级碰碰人国产在线观看| 精品久久久久久久久久久久久久| 国产不卡一区二区在线播放| 欧美激情手机在线视频| 色老头一区二区三区在线观看| 日韩美女av在线| 亚洲xxx自由成熟| 国产一区私人高清影院| 国产精品久久久久久久电影| 午夜精品久久17c| 国产国语videosex另类| 亚洲午夜激情免费视频| 热久久视久久精品18亚洲精品| 欧美日韩国产限制| 亚洲日韩中文字幕| 久久精品国产成人精品| 欧美视频在线免费| 欧美极品少妇全裸体| 主播福利视频一区| 国产不卡视频在线| 96sao精品视频在线观看| 欧美影院在线播放| 亚洲精品永久免费精品| 日本免费一区二区三区视频观看| 成人免费视频网址| 精品国内亚洲在观看18黄| 亚洲国产99精品国自产| 久久久久久久久久久成人| 中文字幕少妇一区二区三区| 欧美性jizz18性欧美| 亚洲激情在线观看| 国产一区二区三区四区福利| 日韩精品视频中文在线观看| 日韩在线视频一区| 亚洲精品国产精品国自产在线| 欧美日韩国产成人| 欧美精品激情blacked18| 伊人久久精品视频| 欧美精品成人91久久久久久久| 欧美日韩国产精品一区二区不卡中文| 精品久久久久久亚洲精品| 国产精品一区二区久久精品| 色偷偷噜噜噜亚洲男人| 国产精品一区二区av影院萌芽| 中文字幕亚洲欧美一区二区三区| 久久久久久久久网站| 久久久久亚洲精品成人网小说| 久久久精品国产一区二区| 久久久www成人免费精品张筱雨| 伊人男人综合视频网| 国产精品天天狠天天看| 日韩中文字幕欧美| 成人亚洲欧美一区二区三区| 久久影视电视剧免费网站| 懂色av一区二区三区| 国产成人精品久久亚洲高清不卡| 欧美日韩一区二区三区在线免费观看| 久久精品久久精品亚洲人| 精品久久久久久久大神国产| 日韩电影在线观看中文字幕| 国产一区二区成人| 欧美做受高潮电影o| 国产精品电影在线观看| 国产精品99久久久久久白浆小说| 亚洲字幕在线观看| 在线日韩日本国产亚洲| 草民午夜欧美限制a级福利片| 国产精品无码专区在线观看| 国产va免费精品高清在线| 久久大大胆人体| 久久亚洲综合国产精品99麻豆精品福利| 97视频在线观看播放| 亚洲美女中文字幕| 亚洲精品福利资源站| 91亚洲国产成人精品性色| 欧美黄色性视频| 欧美日韩综合视频| 色偷偷噜噜噜亚洲男人| 人人澡人人澡人人看欧美| 日韩欧美aⅴ综合网站发布| 日韩精品久久久久久久玫瑰园| 国产精品扒开腿做| 久久久久日韩精品久久久男男| 亚洲成人av中文字幕| 亚洲精品欧美极品| 精品毛片网大全| 视频直播国产精品| 欧美亚洲另类制服自拍| 一本大道久久加勒比香蕉| 成人h猎奇视频网站| 日韩成人在线视频| 亚洲视频网站在线观看| 欧美在线激情视频| 欧美肥婆姓交大片| 最近的2019中文字幕免费一页| 国产成人av网| 亚洲黄色片网站|