sleep_i_like 2023-06-27 13:00 采纳率: 97.6%
浏览 44

如何用ajax给vue中的data()属性赋值?

img

在element ui tree组件上右击会出现“添加基站”,我会将相关的信息更新的mysql中,随后重新加载页面。这样tree就更新了。但是现在要做到不刷新页面。

原来的实现代码:

    el: '#b-leftcol', 
            mounted(){


            },
            
            data() {
            var data = <?php require_once(dirname(__FILE__)."/MysqlInterface/ReadTreeData.php");  echo preg_replace('/"([a-zA-Z]+[a-zA-Z0-9]*)":/','$1:', json_encode(ReadTreeData(), JSON_UNESCAPED_UNICODE)); ?>;
            return {
                currentNodeData:"",
                data : data,
                defaultProps: {
                children: "children",
                label: "label"
                }
            }
            },
})

主要是 data 赋值方式

这次优化我目前的代码:

el: '#b-leftcol', 
    mounted(){
        // this.getData();
    },
    
    data() {
      // var data = this.getData();
      return {
        currentNodeData:"",
        data :data,
        defaultProps: {
        children: "children",
        label: "label"
        }
      }
    },
    methods: {
      getData(){
    
        ajaxPost('./MysqlInterface/ReadTreeData.php', {}, 'POST', function(rep) {
                      console.log("xzb",rep);
                  
              }, function() {});
      },

1.就是用ajax的方式请求而已,console 出来看结果,结果是对的,但是不知道如何赋值给data

2.ajax请求是异步,在拿到结果前,页面已经加载完成。不知道如何规避这个问题。

3.当我后续修改数据以后,我想通过重新调用执行这个ajax函数该怎么办?

  • 写回答

3条回答 默认 最新

  • 自在猫先生 2023-06-27 15:07
    关注

    源于chatGPT仅供参考

    要使用Ajax为Vue中的data()属性赋值,可以在组件的mounted()生命周期钩子中调用一个异步请求,并在请求成功后将响应数据赋给data属性。
    
    以下是一个示例代码,演示了如何通过Ajax请求更新Vue组件中的data属性:
    
    ```javascript
    new Vue({
      el: '#b-leftcol',
      mounted() {
        this.getData();
      },
      data() {
        return {
          currentNodeData: "",
          data: null,
          defaultProps: {
            children: "children",
            label: "label"
          }
        };
      },
      methods: {
        getData() {
          // 发送异步请求获取数据
          // 这里假设使用axios库发送Ajax请求,您也可以根据自己喜好选择其他Ajax库
          axios.get('./MysqlInterface/ReadTreeData.php')
            .then(response => {
              // 请求成功后将响应数据赋给data属性
              this.data = response.data;
            })
            .catch(error => {
              console.log(error);
            });
        }
      }
    });
    

    在上述代码中,我们在组件的mounted()生命周期钩子中调用了getData()方法,该方法通过发送Ajax请求从服务器获取数据。在请求成功后,使用箭头函数获取响应数据,并将其赋给data属性。

    请注意,上述示例使用axios库发送Ajax请求,您需要确保已经正确引入并配置了axios库。如果您使用其他Ajax库,请相应地调整代码。另外,为了简化示例,我在getData()方法中只展示了请求成功的情况,您可以根据需要添加错误处理和其他逻辑。

    ```

    评论

报告相同问题?

问题事件

  • 修改了问题 6月27日
  • 创建了问题 6月27日

悬赏问题

  • ¥15 如何入门学习c语言,单片机
  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam