أنا أستخدم Tailwindcss مع وحدات css وألاحظ أنه في المرة الأولى التي يتم فيها تحميل الصفحة ، لم يتم تحميل جميع الأنماط الخاصة بي. في محاولة لمعرفة ما كان يحدث ، قمت بتشغيل مثال Tailwindcss وأضف نمطًا من وحدة css ويحدث هناك أيضًا ، حتى عندما تم تصميمه من أجل prod.
قم بتشغيل المثال من https://github.com/zeit/next.js/tree/canary/examples/with-tailwindcss
قم بإضافة ملف index.module.css
بنمط ما
أضف الأنماط من وحدة css في صفحة index.js
بدون استخدام وحدات css ، يتم تحميل جميع الأنماط بشكل جيد في المرة الأولى ، دون وميض. يُتوقع نفس السلوك باستخدام وحدات css النمطية
أظن أن هذا قد يكون له علاقة بالتقسيم التلقائي للتعليمات البرمجية لوحدات css النمطية 🤔
ربما تتعلق بـ https://github.com/zeit/next.js/issues/10268
لقد استخدمت وحدات css العادية للمكونات والأنماط التي يتم تطبيقها بعد بضع مللي ثانية.
لقد استخدمت وحدات css العادية للمكونات والأنماط التي يتم تطبيقها بعد بضع مللي ثانية.
وفقًا لـ https://stackoverflow.com/a/42969608/943337 ، قمت للتو بإضافة علامة نصية فارغة ومشكلة الشريط الجانبي التي ظهرت عند التحميل الأول ، تم حلها الآن.
https://github.com/vercel/next-plugins/issues/455#issuecomment -489452379
import Document, { Html, Head, Main, NextScript } from 'next/document';
import { GA_TRACKING_ID } from '../utils/anayltics';
class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
<Html lang="de">
<Head>
</Head>
<body>
<Main />
<NextScript />
{/* Empty script tag as chrome bug fix, see https://stackoverflow.com/a/42969608/943337 */}
<script> </script>
</body>
</Html>
);
}
}
export default MyDocument;
لقد استخدمت وحدات css العادية للمكونات والأنماط التي يتم تطبيقها بعد بضع مللي ثانية.
وفقًا لـ https://stackoverflow.com/a/42969608/943337 ، قمت للتو بإضافة علامة نصية فارغة ومشكلة الشريط الجانبي التي ظهرت عند التحميل الأول ، تم حلها الآن.
import Document, { Html, Head, Main, NextScript } from 'next/document'; import { GA_TRACKING_ID } from '../utils/anayltics'; class MyDocument extends Document { static async getInitialProps(ctx) { const initialProps = await Document.getInitialProps(ctx); return { ...initialProps }; } render() { return ( <Html lang="de"> <Head> </Head> <body> <Main /> <NextScript /> {/* Empty script tag as chrome bug fix, see https://stackoverflow.com/a/42969608/943337 */} <script> </script> </body> </Html> ); } } export default MyDocument;
شكرًا @ Adrianjs42 ، توقف الشريط الجانبي الذي
أيضا ذات الصلة
https://github.com/vercel/next.js/issues/13058
يوجد حل بديل لحل هذه المشكلة
أنشئ " _document.js
" مخصصًا وأضف الفئة " no-fouc
" في مكون Html
أنشئ " _app.js
" مخصصًا وأضف الكود التالي في " componentDidMount
"
const removeFouc = (foucElement) => {
foucElement.className = foucElement.className.replace('no-fouc', 'fouc')
}
removeFouc(document.documentElement)
أضف إضافة هذه الأنماط في الأنماط العامة:
.no-fouc {
visibility: hidden;
opacity: 0;
}
.fouc {
visibility: visible;
opacity: 1;
}
يجب إصلاح هذا في next@^9.4.5-canary.15
! يرجى الترقية وإخبارنا.
Timer ، لقد قمت بتثبيت next@^9.4.5-canary.18
. الآن لا يظهر وميض CSS في وضع التطوير ، لكنه يظل كما هو في إصدار الإنتاج . نسخة الإنتاج لا تزال تحتوي على الخطأ.
لاحظ أنني أستخدم وحدات material-ui + css
إليك إصدار من التطبيق الذي كنت أعمل عليه لمواجهة هذه المشكلة: https://cluster-11-lwj6nmcgy.vercel.app/ .
@ Prottoy2938 كذلك هنا. لقد علقت على هذه المشكلة https://github.com/vercel/next.js/issues/13058#issuecomment -654165987
Timer ، لقد قمت بتثبيت
next@^9.4.5-canary.18
. الآن لا يظهر وميض CSS في وضع التطوير ، لكنه يظل كما هو في إصدار الإنتاج . نسخة الإنتاج لا تزال تحتوي على الخطأ.لاحظ أنني أستخدم وحدات material-ui + css
إليك إصدار من التطبيق الذي كنت أعمل عليه لمواجهة هذه المشكلة: cluster-11-lwj6nmcgy.vercel.app .
يبدو أن حالتك غير مرتبطة بوحدات css / Tailwind وأكثر ارتباطًا بنسيان تنفيذ العرض المسبق لواجهة المستخدم المادية: https://github.com/vercel/next.js/issues/7322#issuecomment -653858948
casperle ، في حالتي كانت المشكلة لأنني كنت أقوم بإجراء عرض من جانب الخادم . لقد اتبعت هذه الوثائق من واجهة المستخدم المادية وقمت بإصلاح المشكلة
مع v9.4.5-canary.28 لا يتأرجح في dev ويومض في الإنتاج.
التعليق الأكثر فائدة
يوجد حل بديل لحل هذه المشكلة
أنشئ "
_document.js
" مخصصًا وأضف الفئة "no-fouc
" في مكون Htmlأنشئ "
_app.js
" مخصصًا وأضف الكود التالي في "componentDidMount
"أضف إضافة هذه الأنماط في الأنماط العامة: