【问题标题】:How to get data and binding data from onMounted VueJS如何从 onMounted VueJS 获取数据和绑定数据
【发布时间】:2021-05-04 08:22:08
【问题描述】:

Test.vue

<template>
  <li v-for="item in masterCompany" v-bind:key="item.id">
    {{ item.displayName }}
  </li>
</template>
<script>
import Test from "../hooks/Test.hook";
import { onMounted } from "vue";
export default {
  setup() {
    const { getCompanysService, masterCompany } = Test.onLoadCompanys();
    onMounted(getCompanysService);
    return {
      getCompanysService,
      masterCompany,
    };
  },
};
</script>

Test.hook.js

import MasterService from '../services/masters.service'
import {reactive} from 'vue' 
function LoadCompanys() { 
    let masterCompany = reactive([])
    const getCompanysService = async () => 
        { 
            masterCompany.value = await MasterService.getCompanys();
        }
    return  {
        masterCompany,
        getCompanysService
    }
}

export default {  
    onLoadCompanys : LoadCompanys
};

master.service.js

    import HttpRequest from './api.service' 
    let http = new HttpRequest(); 
    export const Masters = { 
        async getCompanys(){ 
            let url = 'https://Test.com/GetCompany';
            return await http.get(url).then((res) => { 
               console.log('getCompanys',res)
                return res.data;
            })
    }
} 
export default Masters

我试图从 api 获取数据,但我不知道在组件中绑定

组件没有显示价值。

或者有更好的方法吗?请指教。

【问题讨论】:

    标签: typescript vue.js vuejs2 vue-component vuejs3


    【解决方案1】:

    masterCompany 应定义为ref 或传递给reactive 的对象中的嵌套字段:

    import MasterService from '../services/masters.service'
    import {ref} from 'vue' 
    function LoadCompanys() { 
        let masterCompany = ref([])
    

    【讨论】:

    • 非常感谢,有没有其他映射模型的方法?
    • 不客气,你可以使用reactive 像:const state = reactive({masterCompany :[]}) 然后使用state.masterCompany 而不是masterCompany.value
    猜你喜欢
    • 2017-09-26
    • 2019-07-12
    • 2019-08-02
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2018-01-10
    相关资源
    最近更新 更多