diff --git a/frontend-h5/src/components/MaterialCard.vue b/frontend-h5/src/components/MaterialCard.vue new file mode 100644 index 0000000..f6d2698 --- /dev/null +++ b/frontend-h5/src/components/MaterialCard.vue @@ -0,0 +1,34 @@ + + + diff --git a/frontend-h5/src/composables/useInfiniteScroll.js b/frontend-h5/src/composables/useInfiniteScroll.js new file mode 100644 index 0000000..5b06bc8 --- /dev/null +++ b/frontend-h5/src/composables/useInfiniteScroll.js @@ -0,0 +1,12 @@ +import { onMounted, onBeforeUnmount, ref } from 'vue' + +export function useInfiniteScroll(target, onLoad) { + const observer = ref(null) + onMounted(() => { + observer.value = new IntersectionObserver((entries) => { + if (entries[0].isIntersecting) onLoad() + }) + if (target.value) observer.value.observe(target.value) + }) + onBeforeUnmount(() => observer.value?.disconnect()) +} diff --git a/frontend-h5/src/views/CategoryDetail.vue b/frontend-h5/src/views/CategoryDetail.vue index 028f12b..1607d5f 100644 --- a/frontend-h5/src/views/CategoryDetail.vue +++ b/frontend-h5/src/views/CategoryDetail.vue @@ -1,2 +1,104 @@ - - + + + + +