Javascript 处理数据加载-Vue
我正在将项目数据从Vuex加载到组件中。当我刷新页面时,需要一两秒钟来加载导致页面短暂中断的数据:Javascript 处理数据加载-Vue,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我正在将项目数据从Vuex加载到组件中。当我刷新页面时,需要一两秒钟来加载导致页面短暂中断的数据: 有没有办法让我更优雅地处理这件事?即使只是一个白色屏幕也会更好。您可以在该页面上添加一个预加载程序,该预加载程序在显示实际页面之前加载几秒钟您可以在该页面上添加一个预加载程序,该预加载程序在显示实际页面之前加载几秒钟只需为此添加一个加载程序即可。现在很多网站在加载数据时都会显示漂亮的加载图标、徽标或消息。为此,请检查数据是否正在加载,然后显示加载程序,或者在该页面中显示数据 让我们举一个小例子来说
有没有办法让我更优雅地处理这件事?即使只是一个白色屏幕也会更好。您可以在该页面上添加一个预加载程序,该预加载程序在显示实际页面之前加载几秒钟您可以在该页面上添加一个预加载程序,该预加载程序在显示实际页面之前加载几秒钟只需为此添加一个加载程序即可。现在很多网站在加载数据时都会显示漂亮的加载图标、徽标或消息。为此,请检查数据是否正在加载,然后显示加载程序,或者在该页面中显示数据 让我们举一个小例子来说明我的意思 Vue.组件“加载屏幕”{ 模板:“正在加载…” } 新Vue{ el:“应用程序”, 数据:{ 孤岛加载:正确 }, 安装{ 设置超时=>{ this.isLoading=false }, 3000 } } 身体 边距0 加载 背景色63ab97 白色 字体大小32px 填充顶部10vh 高度100vh 文本居中对齐 你好,世界!
只需添加一个加载程序即可。现在很多网站在加载数据时都会显示漂亮的加载图标、徽标或消息。为此,请检查数据是否正在加载,然后显示加载程序,或者在该页面中显示数据 让我们举一个小例子来说明我的意思 Vue.组件“加载屏幕”{ 模板:“正在加载…” } 新Vue{ el:“应用程序”, 数据:{ 孤岛加载:正确 }, 安装{ 设置超时=>{ this.isLoading=false }, 3000 } } 身体 边距0 加载 背景色63ab97 白色 字体大小32px 填充顶部10vh 高度100vh 文本居中对齐 你好,世界!
例如,您可以这样做: 首先创建一个名为example loader的组件
例如,您可以这样做: 首先创建一个名为example loader的组件
如果我正常导航到路线会触发吗?我只需要刷新第页是的会@Daniel_Knights@nitrocode,你能在代码中举例说明你的意思吗?如果我正常导航到路线会触发吗?我只需要刷新第页是的会@Daniel_Knights@nitrocode,你能在代码中举例说明你的意思吗?你知道数据何时开始获取isLoading=true,你知道当你拥有所有数据时,设置isLoading=false。。。使用该变量,您可以创建平滑操作或基本操作,如v-if=加载。。。否则。。。有很好的加载组件,像Youtube一样的顶部颜色栏,可能会更好。。。另一种方法是,在获取数据时加载一段时间……您知道数据何时开始获取isLoading=true,并且您知道当您拥有所有数据时,设置isLoading=false。。。使用该变量,您可以创建平滑操作或基本操作,如v-if=加载。。。否则。。。有很好的加载组件,像Youtube一样的顶部颜色栏,可能会更好。。。另一种方法是,在获取数据时加载一段时间……这看起来真的很好,有没有一种方法可以检测页面是否实际加载而不是使用setTimeout?是的,只需在数据属性中声明一个变量isLoading=true,当您从api调用中得到响应时,将isLoading=false。这样可以解决您的问题。这看起来非常好,有没有办法检测页面是否正在实际加载而不是使用setTimeout?是的,只需在数据属性中声明一个变量isLoading=true,当您从api调用获得响应时,将isLoading=false。这样你的问题就可以解决了。
//loader.vue
<template>
<div class="loader">
<p>Loading...</p>
</div>
</template>
<style scoped>
.loader {
width: 100vw;
height: 100vh;
background: white;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
left: 0;
top: 0;
z-index: 1000000;
}
</style>
<template>
<div>
<loader v-if="$store.state.loading"></loader>
</div>
</template>
import loader from "path/to/loader";
export default {
components: {
loader: loader
}
}