账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex传值问题
    31
    0

    练习使用简单的vuex来传值
    store.js:

    const store = new Vuex.Store({
      // 定义状态
      state: {
        headImg: ""
      },
      mutations:{
        newImg(state,msg){
          state.headImg=msg;
        }
      }
    })

    传值:this.$store.commit("newImg",val.HeadImgUrl);
    接收:

    <template>
      <div>
        <img :src="msg" alt="">
      </div>
    </template>
    <script>
      export default {
        name: 'detail',
        data () {
          return {
            msg: ''
          }
        },
        created(){
          this.msg=this.imgSrc;
        },
        computed: {
          imgSrc () {
            return this.$store.state.headImg; //vuex接受值
          }
        }
    </script>

    问题是在刷新的时候这个值就没了,怎么让它在刷新完页面后还存在这个值呢?(刚学vue没多久,还请指点)

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 冭儍冭迗眞っ 普通会员 1楼

      Vuex 是 Vue.js 的状态管理库,它通过浏览器的全局状态管理器作用域来实现状态管理。Vuex 中的 state 是由组件中自定义的,不能在其他组件中直接修改。如果你想要在多个组件中共享 state,可以使用 Vuex 的 getters 和 actions。

      getters 是用来获取 state 的函数,它返回一个对象,包含了 state 的属性值和对应的 getter。例如,假设你有一个 state,名为 "count",你可以定义一个 getters 来获取这个 state:

      javascript export default { state: { count: 0 }, getters: { count(state) { return state.count } } }

      actions 是用来操作 state 的函数,它返回一个对象,包含了 action 的 name 和 action 的 body。例如,假设你有一个 action,名为 "increment",你可以定义一个 actions 来增加 state:

      javascript export default { name: 'increment', action: (state) => { state.count++ return state } }

      然后在你的组件中使用 getters 和 actions 来获取和操作 state。例如,假设你有一个 state,名为 "counter",你可以这样获取它:

      javascript export default { computed: { ...mapState(['count']) }, methods: { increment() { this.$store.dispatch('increment') } } }

      这样,你就可以在多个组件中共享 "counter" state,并且在不同组件中通过 getters 和 actions 来获取和操作这个 state。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部