So verwenden Sie die Skelett-Bildschirminjektion von Vue-Seiten
Dieses Mal zeige ich Ihnen, wie Sie die Vue-Seitenskelett-Bildschirminjektion verwenden und welche Vorsichtsmaßnahmen bei der Verwendung der Vue-Seiten-Skelett-Bildschirminjektion gelten. Hier sind praktische Fälle, werfen wir einen Blick darauf.
Als Frontend-Entwickler, der den engsten Kontakt zu den Benutzern hat, ist die Benutzererfahrung das wichtigste Thema. Bezüglich der Anzeige des Seitenladestatus gibt es zwei gängige Methoden: Ladediagramm und Fortschrittsbalken. Darüber hinaus nutzen immer mehr Apps die „Skeleton Screen“-Methode, um ungeladene Inhalte anzuzeigen, was den Nutzern ein völlig neues Erlebnis bietet. Da SPA in der Front-End-Welt immer beliebter wird, plagt auch das Problem des Ladens des ersten Bildschirms Entwickler. Gibt es also eine Möglichkeit, Skelettbildschirme in SPA zu verwenden? Dies wird in diesem Artikel untersucht.
Der relevante Code des Artikels wurde mit Github synchronisiert, bitte überprüfen Sie ~
1 Was ist ein Skelettbildschirm?
Einfach ausgedrückt verwendet der Skelettbildschirm einige Grafiken als Platzhalter, wenn der Seiteninhalt nicht geladen ist, und ersetzt sie dann, nachdem der Inhalt geladen wurde.
Diese Technologie wird häufig in einigen inhaltsbasierten APPs und Webseiten verwendet. Nehmen wir als Nächstes ein einfaches Vue-Projekt als Beispiel, um zu untersuchen, wie man Vue-basiertes Implementieren verwendet Skelettbildschirm im SPA-Projekt.
2. Analysieren Sie den Inhaltsladevorgang der Vue-Seite
Der Einfachheit halber verwenden wir vue-cli mit dem Webpack- einfache Vorlage zum Erstellen eines neuen Projekts:
vue init webpack-simple vue-skeleton
Zu diesem Zeitpunkt haben wir ein einfachstes Vue-Projekt erhalten:
├── package.json ├── src │ ├── App.vue │ ├── assets │ └── main.js ├── index.html └── webpack.conf.js
Nach der Installation der Abhängigkeiten können Sie es ausführen durch npm run dev
dieses Projekt. Bevor wir jedoch das Projekt ausführen, schauen wir uns zunächst an, was in der HTML-Eintragsdatei steht.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>vue-skeleton</title> </head> <body> <p id="app"></p> <script src="/dist/build.js"></script> </body> </html>
Wie Sie sehen können, gibt es in
im DOM nur eine p#app. Wenn js ausgeführt wird, können wir dies tun Machen Sie ein Experiment und fügen Sie etwas Inhalt zu diesem p hinzu:
<p id="app"> <p>Hello skeleton</p> <p>Hello skeleton</p> <p>Hello skeleton</p> </p>
Öffnen Sie die Entwicklertools von Chrome, suchen Sie die Drosselfunktion im Netzwerk, stellen Sie die Netzwerkgeschwindigkeit auf „Langsam 3G“ ein, aktualisieren Sie die Seite, und Sie sehen die Seite zuerst Zeigt drei Sätze von „Hallo Skelett“ an, die nach dem Laden des js durch den ursprünglichen Inhalt ersetzt werden.
Jetzt haben wir eine ganz klare Vorstellung davon, wie wir den Skelettbildschirm auf der Vue-Seite implementieren können – fügen Sie einfach den Skelettbildschirm-bezogenen Inhalt direkt in p#app ein.
3. Einfach zu wartende Lösung
Offensichtlich ist es unwissenschaftlich, den Skelettbildschirminhalt manuell in p#app zu schreiben Sie benötigen eine hoch skalierbare, automatisierte und einfach zu wartende Lösung. Da es sich um ein Vue-Projekt handelt, hoffen wir natürlich, dass der sogenannte Skelettbildschirm auch eine .vue-Datei ist, die vom Tool während der Erstellung automatisch in p#app eingefügt werden kann.
Zuerst erstellen wir eine neue Skeleton.vue-Datei im Verzeichnis /src mit folgendem Inhalt:
<template> <p class="skeleton page"> <p class="skeleton-nav"></p> <p class="skeleton-swiper"></p> <ul class="skeleton-tabs"> <li v-for="i in 8" class="skeleton-tabs-item"><span></span></li> </ul> <p class="skeleton-banner"></p> <p v-for="i in 6" class="skeleton-productions"></p> </p> </template> <style> .skeleton { position: relative; height: 100%; overflow: hidden; padding: 15px; box-sizing: border-box; background: #fff; } .skeleton-nav { height: 45px; background: #eee; margin-bottom: 15px; } .skeleton-swiper { height: 160px; background: #eee; margin-bottom: 15px; } .skeleton-tabs { list-style: none; padding: 0; margin: 0 -15px; display: flex; flex-wrap: wrap; } .skeleton-tabs-item { width: 25%; height: 55px; box-sizing: border-box; text-align: center; margin-bottom: 15px; } .skeleton-tabs-item span { display: inline-block; width: 55px; height: 55px; border-radius: 55px; background: #eee; } .skeleton-banner { height: 60px; background: #eee; margin-bottom: 15px; } .skeleton-productions { height: 20px; margin-bottom: 15px; background: #eee; } </style>
Als nächstes erstellen wir eine neue Skeleton.entry.js Entry-Datei:
import Vue from 'vue' import Skeleton from './Skeleton.vue' export default new Vue({ components: { Skeleton }, template: '<skeleton />' })
Nach Abschluss der Vorbereitung des Skelettbildschirms ist ein wichtiges Plug-in, der Vue-Server-Renderer, an der Reihe. Dieses Plug-In wird ursprünglich für das serverseitige Rendering verwendet, aber in diesem Beispiel verwenden wir seine Funktion hauptsächlich zum Verarbeiten von .vue -Dateien in HTML- und CSS-Strings, um die Injektion des Skelettbildschirms abzuschließen. Der Vorgang ist wie folgt :
4. Lösungsimplementierung
Gemäß dem Flussdiagramm müssen wir auch eine erstellen Das neue Webpack in der Datei .skeleton.conf.js im Stammverzeichnis wird speziell zum Erstellen von Skelettbildschirmen verwendet.const path = require('path') const webpack = require('webpack') const nodeExternals = require('webpack-node-externals') const VueSSRServerPlugin = require('vue-server-renderer/server-plugin') module.exports = { target: 'node', entry: { skeleton: './src/skeleton.js' }, output: { path: path.resolve(dirname, './dist'), publicPath: '/dist/', filename: '[name].js', libraryTarget: 'commonjs2' }, module: { rules: [ { test: /\.css$/, use: [ 'vue-style-loader', 'css-loader' ] }, { test: /\.vue$/, loader: 'vue-loader' } ] }, externals: nodeExternals({ whitelist: /\.css$/ }), resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js' }, extensions: ['*', '.js', '.vue', '.json'] }, plugins: [ new VueSSRServerPlugin({ filename: 'skeleton.json' }) ] }
可以看到,该配置文件和普通的配置文件基本完全一致,主要的区别在于其 target: 'node' ,配置了 externals ,以及在 plugins 里面加入了 VueSSRServerPlugin 。在 VueSSRServerPlugin 中,指定了其输出的json文件名。我们可以通过运行下列指令,在 /dist 目录下生成一个 skeleton.json 文件:
webpack --config ./webpack.skeleton.conf.js
这个文件在记载了骨架屏的内容和样式,会提供给 vue-server-renderer 使用。
接下来,在根目录下新建一个 skeleton.js ,该文件即将被用于往 index.html 内插入骨架屏。
const fs = require('fs') const { resolve } = require('path') const createBundleRenderer = require('vue-server-renderer').createBundleRenderer // 读取`skeleton.json`,以`index.html`为模板写入内容 const renderer = createBundleRenderer(resolve(dirname, './dist/skeleton.json'), { template: fs.readFileSync(resolve(dirname, './index.html'), 'utf-8') }) // 把上一步模板完成的内容写入(替换)`index.html` renderer.renderToString({}, (err, html) => { fs.writeFileSync('index.html', html, 'utf-8') })
注意,作为模板的 html 文件,需要在被写入内容的位置添加 占位符,本例子在 p#app 里写入:
<p id="app"> <!--vue-ssr-outlet--> </p>
接下来,只要运行 node skeleton.js ,就可以完成骨架屏的注入了。运行效果如下:
<html lang="en"> <head> <meta charset="utf-8"> <title>vue-skeleton</title> <style data-vue-ssr-id="742d88be:0"> .skeleton { position: relative; height: 100%; overflow: hidden; padding: 15px; box-sizing: border-box; background: #fff; } .skeleton-nav { height: 45px; background: #eee; margin-bottom: 15px; } .skeleton-swiper { height: 160px; background: #eee; margin-bottom: 15px; } .skeleton-tabs { list-style: none; padding: 0; margin: 0 -15px; display: flex; flex-wrap: wrap; } .skeleton-tabs-item { width: 25%; height: 55px; box-sizing: border-box; text-align: center; margin-bottom: 15px; } .skeleton-tabs-item span { display: inline-block; width: 55px; height: 55px; border-radius: 55px; background: #eee; } .skeleton-banner { height: 60px; background: #eee; margin-bottom: 15px; } .skeleton-productions { height: 20px; margin-bottom: 15px; background: #eee; } </style></head> <body> <p id="app"> <p data-server-rendered="true" class="skeleton page"><p class="skeleton-nav"></p> <p class="skeleton-swiper"></p> <ul class="skeleton-tabs"><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li><li class="skeleton-tabs-item"><span></span></li></ul> <p class="skeleton-banner"></p> <p class="skeleton-productions"></p><p class="skeleton-productions"></p><p class="skeleton-productions"></p><p class="skeleton-productions"></p><p class="skeleton-productions"></p><p class="skeleton-productions"></p></p> </p> <script src="/dist/build.js"></script> </body> </html>
可以看到,骨架屏的样式通过 标签直接被插入,而骨架屏的内容也被放置在 p#app 之间。当然,我们还可以进一步处理,把这些内容都压缩一下。改写 skeleton.js ,在里面添加 html-minifier :
...
+ const htmlMinifier = require('html-minifier') ... renderer.renderToString({}, (err, html) => { + html = htmlMinifier.minify(html, { + collapseWhitespace: true, + minifyCSS: true + }) fs.writeFileSync('index.html', html, 'utf-8') })
来看看效果:
效果非常不错!至此,Vue页面接入骨架屏已经完全实现了。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Skelett-Bildschirminjektion von Vue-Seiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Möchten Sie eine Seite in Microsoft Word kopieren und die Formatierung beibehalten? Dies ist eine kluge Idee, da das Duplizieren von Seiten in Word eine nützliche zeitsparende Technik sein kann, wenn Sie mehrere Kopien eines bestimmten Dokumentlayouts oder -formats erstellen möchten. Diese Anleitung führt Sie Schritt für Schritt durch den Prozess des Kopierens von Seiten in Word, unabhängig davon, ob Sie eine Vorlage erstellen oder eine bestimmte Seite in einem Dokument kopieren. Diese einfachen Anweisungen sollen Ihnen dabei helfen, Ihre Seite einfach neu zu erstellen, ohne bei Null anfangen zu müssen. Warum Seiten in Microsoft Word kopieren? Es gibt mehrere Gründe, warum das Kopieren von Seiten in Word sehr vorteilhaft ist: Wenn Sie ein Dokument mit einem bestimmten Layout oder Format kopieren möchten. Im Gegensatz dazu, die gesamte Seite von Grund auf neu zu erstellen

Bei der täglichen Nutzung eines Netzwerks kommt es häufig zu Seitenaktualisierungen. Wenn wir eine Webseite besuchen, treten manchmal Probleme auf, z. B. wenn die Webseite nicht geladen wird oder nicht ordnungsgemäß angezeigt wird. Zu diesem Zeitpunkt entscheiden wir uns normalerweise dafür, die Seite zu aktualisieren, um das Problem zu lösen. Wie kann die Seite also schnell aktualisiert werden? Lassen Sie uns die Tastenkombinationen für die Seitenaktualisierung besprechen. Die Tastenkombination für die Seitenaktualisierung ist eine Methode zum schnellen Aktualisieren der aktuellen Webseite über Tastaturoperationen. In verschiedenen Betriebssystemen und Browsern können die Tastenkombinationen für die Seitenaktualisierung unterschiedlich sein. Im Folgenden verwenden wir das gebräuchliche W

Standby ist eine neue Funktion im iOS 17-Update, die eine neue und verbesserte Möglichkeit bietet, auf Informationen zuzugreifen, wenn Ihr Telefon schnell inaktiv ist. Mit StandBy können Sie bequem die Uhrzeit überprüfen, bevorstehende Ereignisse anzeigen, Ihren Kalender durchsuchen, Wetteraktualisierungen für Ihren Standort abrufen und vieles mehr. Nach der Aktivierung wechselt das iPhone intuitiv in den Standby-Modus, wenn es während des Ladevorgangs auf Querformat eingestellt wird. Diese Funktion eignet sich perfekt für kabellose Ladestationen wie Ihren Nachttisch oder wenn Sie Ihr iPhone während der täglichen Aufgaben nicht aufladen können. Sie können damit durch verschiedene im Standby-Modus angezeigte Widgets wischen, um auf verschiedene Informationssätze aus verschiedenen Anwendungen zuzugreifen. Möglicherweise möchten Sie diese Widgets jedoch ändern oder einige sogar löschen, je nach Ihren Vorlieben und den Informationen, die Sie häufig benötigen. Also lasst uns eintauchen

Unter iOS ermöglicht Apple Ihnen, einzelne Startbildschirmseiten auf Ihrem iPhone zu deaktivieren. Es ist auch möglich, die Reihenfolge der Startbildschirmseiten neu zu ordnen und Seiten direkt zu löschen, anstatt sie nur zu deaktivieren. So funktioniert das. So ordnen Sie die Seiten des Startbildschirms neu an: Berühren und halten Sie die Leertaste auf dem Startbildschirm, um in den Jitter-Modus zu wechseln. Tippen Sie auf die Punktreihe, die die Seiten des Startbildschirms darstellt. Berühren und ziehen Sie im angezeigten Raster des Startbildschirms eine Seite, um sie relativ zu anderen Seiten neu anzuordnen. Andere bewegen sich als Reaktion auf Ihr Ziehen. Wenn Sie mit Ihrer neuen Anordnung zufrieden sind, tippen Sie in der oberen rechten Ecke des Bildschirms auf „Fertig“ und anschließend erneut auf „Fertig“, um den Dither-Modus zu verlassen. So deaktivieren oder entfernen Sie Startbildschirmseiten: Berühren und halten Sie die Leertaste auf dem Startbildschirm, um in den Dither-Modus zu wechseln. Tippen Sie hier, um den Startbildschirm anzuzeigen

Titel: Implementierungsmethode des Seitensprungs in 3 Sekunden: PHP-Programmierhandbuch In der Webentwicklung ist der Seitensprung eine übliche Operation. Im Allgemeinen verwenden wir Meta-Tags in HTML- oder JavaScript-Methoden, um zu Seiten zu springen. In bestimmten Fällen müssen wir jedoch Seitensprünge auf der Serverseite durchführen. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Programmierung eine Funktion implementieren, die innerhalb von 3 Sekunden automatisch zu einer bestimmten Seite springt, und es werden auch spezifische Codebeispiele aufgeführt. Das Grundprinzip des Seitensprungs mit PHP ist eine Art

„Wie man mit dem Fehler umgeht, dass Laravel-Seiten CSS nicht korrekt anzeigen, sind spezifische Codebeispiele erforderlich.“ Wenn Sie das Laravel-Framework zum Entwickeln von Webanwendungen verwenden, tritt manchmal das Problem auf, dass die Seite CSS-Stile nicht korrekt anzeigen kann, was dazu führen kann Seite, um abnormale Stile darzustellen. In diesem Artikel werden einige Methoden vorgestellt, um mit dem Versagen von Laravel-Seiten bei der korrekten Anzeige von CSS umzugehen, und spezifische Codebeispiele bereitgestellt, um Entwicklern bei der Lösung dieses häufigen Problems zu helfen. 1. Überprüfen Sie den Dateipfad. Überprüfen Sie zunächst den Pfad der CSS-Datei.

Mit der Weiterentwicklung des Internets sind viele Websites oder Anwendungen nach und nach komplexer geworden. Wenn Benutzer es verwenden, stoßen sie häufig auf Fehlerseiten, von denen die 404-Seite am häufigsten ist. Die 404-Seite bedeutet, dass die Seite, auf die zugegriffen wird, nicht existiert und eine häufige Fehlerseite ist. Bei Websites oder Anwendungen kann eine schöne 404-Seite das Benutzererlebnis erheblich verbessern. In diesem Artikel stellen wir vor, wie Sie mit ThinkPHP6 schnell eine schöne 404-Seite implementieren. Eine Route erstellen Zuerst müssen wir im Routenordner eine Route erstellen

Titel: Einführung zum Löschen einer Seite mit Inhalten in Word Beim Bearbeiten eines Dokuments mit Microsoft Word kann es manchmal vorkommen, dass Sie den Inhalt einer bestimmten Seite löschen müssen. Möglicherweise möchten Sie eine leere Seite oder unnötigen Inhalt löschen auf einer bestimmten Seite im Dokument. Als Reaktion auf diese Situation können wir einige Methoden anwenden, um den Inhalt einer Seite schnell und effektiv zu löschen. Als Nächstes werden einige Methoden zum Löschen einer Inhaltsseite in Microsoft Word vorgestellt. Methode 1: Eine Seite mit Inhalt löschen Öffnen Sie zunächst das Word-Dokument, das bearbeitet werden muss. Sicherlich
