1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/starlight_day-nuxt3-pc-mobile-switching-demo

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
app.vue 973 Байты
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
bzdxg Отправлено 11.05.2023 12:54 cf609d3
<template>
<div>
<NuxtLayout :name="layout">
<NuxtPage />
</NuxtLayout>
</div>
</template>
<script setup>
import { ref, onMounted, onBeforeMount } from "vue";
import { deviceType } from "~/utils/deviceType";
import { throttle } from "~/utils/tools";
//如果是server
if (process.server) {
const headers = useRequestHeaders();
let layout = deviceType(headers["user-agent"]).type == "pc" ? "default" : "mobile";
useState("layout", () => layout);
}
let layout = useState("layout");
// 监听屏幕变化
onMounted(() => {
window.onresize = throttle(() => {
let w = window.innerWidth;
if (w <= 690) { // 断点
useState("layout").value = "mobile";
} else {
useState("layout").value = "default";
}
}, 100);
// 如果你希望根据屏幕宽度做首次渲染,请加上下面的代码( 不推荐 )
// window.dispatchEvent( new Event( "resize" ) );
});
</script>

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/starlight_day-nuxt3-pc-mobile-switching-demo.git
git@api.gitlife.ru:oschina-mirror/starlight_day-nuxt3-pc-mobile-switching-demo.git
oschina-mirror
starlight_day-nuxt3-pc-mobile-switching-demo
starlight_day-nuxt3-pc-mobile-switching-demo
master