一、在路由中自定义事件

  1. <router-link tag="li" to="/movie" @click.native="handleMovie" >
  2. <i class="iconfont icondianying1"></i>
  3. <p>电影</p>
  4. </router-link>

Tips: router-link的事件@click.native

二、this.$store.dispatch向vuex派发一个事件

  1. methods:{
  2. handleMovie(){
  3. this.$store.dispatch('changeTitle',"豆瓣电影")
  4. }
  5. }

三、vuex中通过actions属性接收

Tips:actions中的事件的名称要和dispatch中一样

  1. export default new Vuex.Store({
  2. state:{
  3. title:"首页"
  4. },
  5. actions:{
  6. //ctx表示上下文 title是组件通过事件传递过来的数据
  7. changeTitle(ctx,title){
  8. ctx.commit('changeTitle',title)
  9. }
  10. },
  11. mutations:{
  12. changeCity(state,title){
  13. //state表示state属性中的数据
  14. state.title = title
  15. }
  16. }
  17. })