كان اعتقادي في تلك المرحلة هو أنه يجب تمرير الحالة العالمية عبر React context بحيث تعمل مع React Concurrent Mode. لذلك، قمت بعمل جدول مقارنة للتمييز بين مكتبتي ومكتبتي الأخرى، وكان Zustand واحدًا منهم. كان هذا في عام 2019.
في عام 2020، انضممت إلى مجموعة Poimandres وتولت تطوير Zustand. كان اهتمامي في ذلك الوقت هو جعل مكتبات الدولة العالمية تعمل مع React Concurrent Mode. لم يكن من الممكن الحصول على الاستفادة الكاملة من الوضع المتزامن، ولكن كانت هناك واجهة برمجة تطبيقات تجريبية تسمى useMutableSource لجعل الحالة العامة متوافقة مع الوضع المتزامن.
كنت أقوم بتجربة العديد من الأشياء باستخدام حل يستند إلى سياق React مع React-Tracked وتساءلت عما يمكننا فعله بالحالة العالمية بدون سياق React. كان عمر زوستاند عامًا واحدًا، لكن لم يكن أحد يحافظ عليه. لذلك قررت أن أتولى الأمر.
لم تكن واجهة برمجة التطبيقات التجريبية useMutableSource جاهزة، لذا كانت المهمة الأولى هي تحديث أشياء مختلفة وإصلاح بعض الأخطاء. كان هذا عندما ولد Zustand v3. كنت آمل أن أقوم قريبًا بإصدار الإصدار الرابع باستخدام useMutableSource، لكن ذلك لم يحدث. هناك قصة أخرى وراء ذلك.
في الوقت الحاضر، أصبح من المألوف أن تكون الحالة العالمية خارجًا وأن تستخدم React context اختياريًا لتمرير متجرها. وكان Zustand رائدا في هذا النمط. كان الناس متشككين جدًا بشأن عدم وجود الحالة العالمية في سياق التفاعل، وواجهنا صعوبة في توضيح أنه نمط صالح.
أحد الأشياء التي أهتم بها مع Zustand هو التنفيذ البسيط وحجم الحزمة الصغير. إذا نظرت إلى الكود المصدري، سترى أنه ليس أكثر من مجرد استخدام خطافات React مع الحد الأدنى من تنفيذ المتجر.
حتى وقت كتابة هذا التقرير، يعد Zustand v4 هو الإصدار الأحدث، الذي يتمتع بدعم TypeScript متقدم جدًا، وقد تمت إعادة كتابة الكود بالكامل تقريبًا من الإصدار 3. لدينا Zustand v5 جاهز تقريبًا للإصدار التالي.
أخيرًا وليس آخرًا، هناك العديد من المساهمين الذين يحافظون على هذا المشروع. لم أتوقع أن يحدث هذا عندما توليت المشروع. أنا ممتن جدا لذلك. شكرا لكم جميعا.
","image":"http://www.luping.net/uploads/20240730/172233792466a8ca84b1d78.jpg","datePublished":"2024-07-30T19:12:03+08:00","dateModified":"2024-07-30T19:12:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
في هذا المنشور، أود أن أشارك القصة وراء تطوير Zustand. على وجه الدقة، لم أكن المؤلف الأصلي لـ Zustand، وعندما ولد Zustand v0، كنت أقوم بتطوير مكتبات حكومية عالمية أخرى، وخاصة React-Tracked. بالمناسبة، أنا الآن أعتبر نفسي مؤلفًا (ثانويًا) لكتاب Zustand.
لقد وجدت تغريدتي تشير إلى Zustand، ومقارنتها مع المكتبات الأخرى، بما في ذلك مكتبتي.
كان اعتقادي في تلك المرحلة هو أنه يجب تمرير الحالة العالمية عبر React context بحيث تعمل مع React Concurrent Mode. لذلك، قمت بعمل جدول مقارنة للتمييز بين مكتبتي ومكتبتي الأخرى، وكان Zustand واحدًا منهم. كان هذا في عام 2019.
في عام 2020، انضممت إلى مجموعة Poimandres وتولت تطوير Zustand. كان اهتمامي في ذلك الوقت هو جعل مكتبات الدولة العالمية تعمل مع React Concurrent Mode. لم يكن من الممكن الحصول على الاستفادة الكاملة من الوضع المتزامن، ولكن كانت هناك واجهة برمجة تطبيقات تجريبية تسمى useMutableSource لجعل الحالة العامة متوافقة مع الوضع المتزامن.
كنت أقوم بتجربة العديد من الأشياء باستخدام حل يستند إلى سياق React مع React-Tracked وتساءلت عما يمكننا فعله بالحالة العالمية بدون سياق React. كان عمر زوستاند عامًا واحدًا، لكن لم يكن أحد يحافظ عليه. لذلك قررت أن أتولى الأمر.
لم تكن واجهة برمجة التطبيقات التجريبية useMutableSource جاهزة، لذا كانت المهمة الأولى هي تحديث أشياء مختلفة وإصلاح بعض الأخطاء. كان هذا عندما ولد Zustand v3. كنت آمل أن أقوم قريبًا بإصدار الإصدار الرابع باستخدام useMutableSource، لكن ذلك لم يحدث. هناك قصة أخرى وراء ذلك.
في الوقت الحاضر، أصبح من المألوف أن تكون الحالة العالمية خارجًا وأن تستخدم React context اختياريًا لتمرير متجرها. وكان Zustand رائدا في هذا النمط. كان الناس متشككين جدًا بشأن عدم وجود الحالة العالمية في سياق التفاعل، وواجهنا صعوبة في توضيح أنه نمط صالح.
أحد الأشياء التي أهتم بها مع Zustand هو التنفيذ البسيط وحجم الحزمة الصغير. إذا نظرت إلى الكود المصدري، سترى أنه ليس أكثر من مجرد استخدام خطافات React مع الحد الأدنى من تنفيذ المتجر.
حتى وقت كتابة هذا التقرير، يعد Zustand v4 هو الإصدار الأحدث، الذي يتمتع بدعم TypeScript متقدم جدًا، وقد تمت إعادة كتابة الكود بالكامل تقريبًا من الإصدار 3. لدينا Zustand v5 جاهز تقريبًا للإصدار التالي.
أخيرًا وليس آخرًا، هناك العديد من المساهمين الذين يحافظون على هذا المشروع. لم أتوقع أن يحدث هذا عندما توليت المشروع. أنا ممتن جدا لذلك. شكرا لكم جميعا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3