ts项目,代码如下,请问如何把playlist return出去,然后在html中像这样playlist.playCount 引用
onMounted(async () => {
const playlist = await window.musicApi.getListDetails(listId);
});
return {
playlist ,
};
},
数据格式如下
playlist = {
id: 2846054862,
name: '用音乐保持你每天的嘴角上扬',
coverImgId: 109951164152314270,
coverImgUrl: 'https://p1.music.126.net/hLv4YJOiLTE16LlRpdxZgQ==/109951164152314267.jpg',
coverImgId_str: '109951164152314267',
adType: 0,
userId: 389547363,
createTime: 1560683477373,
status: 0,
opRecommend: false,
highQuality: false,
newImported: false,
updateTime: 1669191426061,
trackCount: 116,
specialType: 0,
privacy: 0,
trackUpdateTime: 1669191446302,
commentThreadId: 'A_PL_0_2846054862',
playCount: 41429588,
trackNumberUpdateTime: 1669191426061,
subscribedCount: 371223,
cloudTrackCount: 0,
ordered: true,
description:
'我已经准备好了好听又欢快的歌曲\n那你准备好今天的嘴角上扬了吗\n\n快来吧 让好听歌曲伴随你一整天的微笑\n(持更...)',
tags: ['华语', '流行', '散步'],
updateFrequency: null,
backgroundCoverId: 0,
backgroundCoverUrl: null,
titleImage: 0,
titleImageUrl: null,
englishTitle: null,
officialPlaylistType: null,
copied: false,
};
你不能改变onMounted的含义,他是在dom挂载完后执行了,是注册的一个回调,所以没法捕捉它的返回值,但是你可以发起网络请求后将数据暴露出去,可以参考下面的代码
setup() {
let store = useStore()
let route = useRoute()
let detailData = reactive({
list: []
})
let id = computed(() => route.query.id)
const title = computed(() => store.state.detailTitle)
const incommentList = computed(() => store.state.commentList)
onMounted(async () => {
let data = await service.get(configapi.comments(id.value), {
start: 0,
count: 20
})
detailData.list = incommentList.value.reverse().concat(data.reviews || [])
// console.log('detailData.list')
})
return {
title,
detailData
}
}
组件挂在到页面之后执行。
<script lang="ts">
// 引入onMounted 钩子
import { ref, reactive, toRefs, onMounted } from "vue";
export default {
name: "App",
setup() {
console.log("1...setup()开始创建组件");
const data = reactive({
arr: ["Yes", "NO"],
selectOne: "",
selectOneFun: (index: number) => {
data.selectOne = data.arr[index];
},
});
//调用onMounted
onMounted(() => {
console.log("3...onMounted()组件挂在到页面之后执行");
});
const refData = toRefs(data);
return {
...refData,
};
},
};
</script>
就是要把你赋值的变量return出去
setup(){
const postData = ref([])
onBeforeMount(async () => {
const res = await axios.get('http://localhost:3002/postdata')
postData.value = res.data
})
return {
...
postData
}
}