首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用vue3.0和antd2.1.2在页面加载时调用vue.js函数

如何使用vue3.0和antd2.1.2在页面加载时调用vue.js函数
EN

Stack Overflow用户
提问于 2021-05-17 23:43:12
回答 1查看 23关注 0票数 1

我使用vue3.0.0和antd 2.1.2的vue项目

有一个函数"getScriptList",它可以在安装了vue2.0的组件中自动执行。

我想知道当使用vue3.0加载页面时,它如何自动执行?

我把它放在组件"onMounted“中,但它没有用。

这个函数"getScriptlist“可以由mannul执行

“ ExecuteScriptList

我的vue页面test.vue:

代码语言:javascript
复制
<template>

  <a-table
      :row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
      :columns="columns"
      :data-source="dataSource"
      bordered
    >
    <template #operation="{ record }">
      <div>
        <span >
          <a @click="save(record.key)">Delete</a>
          <a @click="edit(record.key)">Edit</a>
        </span>
      </div>
    </template>
  </a-table>
</template>


<script>

import { defineComponent, reactive, ref,computed,toRefs,onMounted } from 'vue';
import axios from 'axios';

const columns = [
  {
    title: 'name',
    dataIndex: 'name',
  },
  {
    title: 'timestamp',
    dataIndex: 'timestamp',
  },
  {
    title: 'location',
    dataIndex: 'location',
  },
  {
    title: 'operation',
    dataIndex: 'operation',
    slots: {
      customRender: 'operation',
    },
  },
];




export default defineComponent({
  setup() {
    const dataSource = [];
    ......

        function getScriptlist(){   
        axios.post(
          "/api/script/getPid",
          qs.stringify({
                pid: 5,     
          }),
          {
            headers: { "Content-Type": "application/x-www-form-urlencoded" },
          })
        .then(response=>{            
 


             for( var i=0;i<response.data.length;i++)
             {
                dataSource.push(response.data[i])
                
               
             }

    

            })
        .catch(function(error){
         console.log(error);
        });


             
       
    }

 

   onMounted(() => 
        {
           

            getScriptlist();

            
        })





    return {
            getScriptlist,
      dataSource,
      columns,
            .......
            .......


      
    };
  },
});
</script>
<style>

</style>
EN

回答 1

Stack Overflow用户

发布于 2021-05-18 00:03:45

您的组件生命周期看起来很好,但是应该将dataSource定义为ref以便具有响应性:

代码语言:javascript
复制
const dataSource = ref([]);

然后替换

代码语言:javascript
复制
for( var i=0;i<response.data.length;i++)
{
    dataSource.push(response.data[i])           
}

使用

代码语言:javascript
复制
dataSource.value=response.data
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67572917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档