Nuxt+Vuex初体验

小呀嘛小二郎,背着书包上学堂。。。

今天一个困扰了我一周时间的问题终于被我解决了,值得庆祝

在Nuxt中使用Vuex实现数据存储

 首先:

在store目录下新建一个index.js文件

需要有两个组件(index || demo)[组件名自定]

 

一、在store目录下新建一个index.js文件

index.js内容如下

//定义数据
export const state = () => ({
  count: 1  //定义count初始值为1
})

//定义方法
export const mutations = {
  inc (state) {
    state.count++
  },
  deinc(state){
    state.count--
  }
}

二、需要有两个组件

 index.vue内容如下:

<template>
  <div>
    <h1>{{ count }}</h1>   <!--count是计算属性中的count-->
    <button @click="inc">增加</button>   
    <NuxtLink to="/demo">Demo</NuxtLink>
  </div>
</template>

<script>
//使用解构赋值从vuex中引入需要的state,也可以引入mapMutations...
import { mapState } from "vuex";

export default {
  computed: mapState(["count"]),//计算属性,count是在store中的index.js中定义的state
  methods: {
    inc() {
      this.$store.commit("inc");//触发store中的index.js中定义的mutations中的inc方法
    }
  }
};
</script>

demo.vue内容如下:

<template>
    <div>
      <h1>{{ $store.state.count }}</h1> <!--取出store中state的count-->
      <button @click="deinc">减少</button>
      <NuxtLink to="/">Home</NuxtLink>
  </div>
</template>

<script>
export default {
    methods:{
        deinc:function () { 
            this.$store.commit('deinc') //触发store中mutations中的deinc方法
        }
    }
}
</script>

三、最终效果如下


 这个东西我竟然研究了一星期,可笑。。。

注意:所有的路由跳转均采用<nuxt-link to=""></nuxt-link>,切忌使用<a href=""></a>血的教训。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端薛小帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值