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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何检测VUE中的state数据变化,然后调用组件中的方法
    30
    0
    mounted() {
       let city = this.$store.state.location.cityInfo.name
    }
    methods: {
       setCity(){
           console.log('123')
       }
    }

    this.$store.state.location.cityInfo.name数据每次变化都会调用组件中的setCity方法,应该如何写。

    setCity是别的插件方法,这里我简写成console.log()### 问题描述

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 放烟火的小笨蛋 普通会员 1楼

      在Vue中,你可以使用watcher来检测state数据的变化。watcher是一个事件监听器,它会在特定条件下触发事件。

      以下是一个简单的例子:

      ```javascript // 我们有一个数组,我们想要监听数组的变化 data() { return { items: ['item1', 'item2', 'item3'] }; }, watch: { items(newItems) { // 当新的Items数组发生变化时,触发事件 console.log('Items数组已更改,现在是:', newItems); } }, // 然后,我们可以在组件的methods中调用这个方法 methods: { render() { // 我们可以通过props来获取数组 const items = this.$parent.items;

          // 在这里,我们可以访问和操作数组
          console.log('Array:', items);
      }
      

      } ```

      在这个例子中,每当items数组发生变化时,我们会触发一个事件,这个事件会被传递给render方法,我们可以在这个方法中访问和操作数组。

      注意,watcher的规则是基于事件的,也就是说,它会监听任何可能改变的事件。如果你只想监听特定类型的事件(例如,改变的数据类型),你可以使用deeply参数。例如:

      ```javascript // 我们有一个数组,我们想要监听数组的变化 data() { return { items: ['item1', 'item2', 'item3'] }; }, watch: { items(newItems, oldItems) { // 当新的Items数组发生变化时,触发事件 console.log('Items数组已更改,现在是:', newItems); // 我们也可以监听oldItems,以便我们可以访问和操作在改变前的数组 console.log('OldItems:', oldItems); } }, // 然后,我们可以在组件的methods中调用这个方法 methods: { render() { // 我们可以通过props来获取数组 const items = this.$parent.items;

          // 在这里,我们可以访问和操作数组
          console.log('Array:', items);
      }
      

      } ```

      在这个例子中,我们监听了oldItems的改变,以便我们可以访问和操作在改变前的数组。

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