Gutenberg: اعتبر حقن البرمجيات الوسيطة كآلية للتمدد

تم إنشاؤها على ٦ مايو ٢٠١٧  ·  3تعليقات  ·  مصدر: WordPress/gutenberg

ذات صلة: # 594

في # 594 ، عندما تنتهي مسودة المنشور من الحفظ ، نقوم بضبط عنوان URL للمتصفح الحالي ليعكس معرف المنشور الجديد. على الرغم من أن هذا ضروري في سياق شاشة المحرر المخصص ، إلا أن هذا يقلل من إمكانية نقل المحرر لأن تغييرات عنوان URL هذه غير قابلة للتطبيق خارج هذا السياق. إذا كنا نرغب في السماح بتهيئة محرر على شاشات أخرى (على سبيل المثال ، الواجهة الأمامية ، Customizer) ، فقد نحتاج إلى استكشاف خيارات لإدخال البرامج الوسيطة الخاصة بالسياق. يمكن أن يكون هذا بمثابة نمط التمدد العام لأي آثار جانبية لتغيرات الحالة.

بالنسبة إلى مثال التنقل الذي تم حفظه في المنشور ، قد يبدو هذا مشابهًا لما يلي:

wp.editor.injectMiddleware( ( store ) => ( next ) => ( action ) => {
    const { type, isNew, post } = action;
    if ( 'REQUEST_POST_UPDATE_SUCCESS' === type ) {
        const [ baseUrl, query ] = window.location.href.split( '?' );
        const qs = parse( query || '' );
        const newUrl = baseUrl + '?' + stringify( {
            ...qs,
            post_id: newPost.id,
        } );
        window.history.replaceState( {}, 'Post ' + newPost.id, newUrl );
    }

    return next( action );
} );

أنظر أيضا:

Framework [Feature] Extensibility [Type] Question

التعليق الأكثر فائدة

تحقق من لوحة تلقائية / إخطارات وكيف نقوم بذلك للتكامل مع automattic / wp-calypso

حقن المعززات

الإجراءات الافتراضية لوضع iframe

عمليات تكامل مخصصة في كاليبسو

بالمناسبة ، كان يعمل بشكل جيد للغاية

ال 3 كومينتر

تحقق من لوحة تلقائية / إخطارات وكيف نقوم بذلك للتكامل مع automattic / wp-calypso

حقن المعززات

الإجراءات الافتراضية لوضع iframe

عمليات تكامل مخصصة في كاليبسو

بالمناسبة ، كان يعمل بشكل جيد للغاية

مرت 8 أشهر وما زلنا في حاجة إليها 😃 كان لدينا إعادة هيكلة كبيرة في الطريقة التي نتعامل بها مع البيانات ، لكن الأدوات الوسيطة لا تزال تلعب دورًا مهمًا. يمكننا استكشاف ما إذا كانت مكتبة الخطافات ستكون مناسبة هنا. قد نقوم بحقن أدوات وسيطة إضافية باستخدام عوامل التصفية هنا: https://github.com/WordPress/gutenberg/blob/master/editor/store/middlewares.js#L40. اقترح youknowriad إنشاء واجهة برمجة تطبيقات داخلية للبدء.

تم استبدال هذا بالأنماط الجديدة مع وحدة البيانات: لا سيما واجهات برمجة التطبيقات subscribe و withSelect ، والتي تسمح للمطور بمراقبة التغييرات والتفاعل معها بمرور الوقت: https://github.com/WordPress /gutenberg/blob/master/packages/data/README.md

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

maddisondesigns picture maddisondesigns  ·  3تعليقات

nylen picture nylen  ·  3تعليقات

spocke picture spocke  ·  3تعليقات

wpalchemist picture wpalchemist  ·  3تعليقات

bradyvercher picture bradyvercher  ·  3تعليقات