يمكن أن يكون مصدر البيانات هو الوقت الحالي ، واتصال مقبس الويب للخادم ، وإدخال لوحة المفاتيح ، وتغيير الموقع الجغرافي ، وتغيير مسار السجل ، وما إلى ذلك.
يمكنك فهم مصدر هذا الإعداد و keyEvent ، وكيفية كتابته إذا كان Websocket أو أي شيء آخر.
setup و keyEvent هي مفاتيح ، عديمة الفائدة مؤقتًا ، ويمكن أن تكون أي سلسلة.
وهذا يعني أن هذا المفتاح يستخدم فقط لمساعدة المطور في تحديد نوع معين من الوظائف هنا. إنه يمر فقط في الإرسال والتاريخ ، ويتطلب رمز المراقبة المحدد مكتبة خاصة بجهة خارجية لتنفيذ المراقبة.
هل فهمي صحيح؟
نعم ، يتم استخدام تنسيق المفتاح / القيمة هنا. في الوقت الحالي ، هو أساسًا للحفاظ على التنسيق متسقًا مع التأثيرات والمخفضات. لاحقًا ، سيتم دعم وظيفة إلغاء الاشتراك ، وسيتم استخدام المفتاح.
أفهم ذلك، شكرا لك.
لكن أعتقد أنه يمكنني إضافة معنى المناقشة أعلاه إلى هذه المستندات ، فقد تواجه نفس المشكلة مثلي :)
الاشتراكات تحدد فقط مكانًا للاشتراك في البيانات. ثم سيتم تمرير الإرسال والمحفوظات. ستحتاج كيفية الاشتراك أو المراقبة إلى مكتبة صفية تابعة لجهة خارجية للتنفيذ. هل هذا فهم؟ الإرسال هو الإرسال في مخزن إعادة الإرسال ، والتاريخ هو التاريخ في جهاز توجيه التفاعل ، هل هذا مفهوم؟
@ roc2539 نعم.
هل يمكنني الوصول إلى محتوى الحالة أو الدعائم في الإعداد في الاشتراكات؟
gzbigegg لا ، قم بتشغيل الإجراء واترك التأثير يتعامل معه.
subscriptions: {
setup ({ dispatch }) {
dispatch({ type: 'query' })
}
}
هناك سؤالان ، لا أعرف ما إذا كان صحيحًا ، تقول الوثيقة إن شركة علم لم تكن على اتصال بهم مطلقًا ، ولا أفهم الاشتراكات بشكل واضح.
أود أن أرى بعض أمثلة الاشتراك مثل websocket
كيفية اكتشاف إجراءين في الإعداد
لا توجد وثيقة واضحة حول توقيت وحقن رد الاتصال في تسجيل الاشتراك @ roc2539 ، هل يمكنك الرد عليها؟
بعد التغيير إلى مسار التجزئة ، يتعذر على الإعداد مراقبة تغيير إدخال عنوان url من لوحة المفاتيح.
لكن استخدام BrowsHistory جيد.
setup ({ dispatch }) {
console.log('models-app') // 手动改变url地址,不会进此方法
dispatch({ type: 'query' })
},
جربت المقبس ، للإشارة فقط.
// model
import * as service from '../services/socket';
subscriptions: {
socket({dispatch}){ // socket相关
return service.listen(data => {
switch (data.type) {
case 'connect':
if (data.state === 'success') {
dispatch({
type: 'connectSuccess'
})
} else {
dispatch({
type: 'connectFail'
})
}
break;
case 'welcome':
dispatch({
type: 'welcome'
});
break;
}
})
}
},
// services
import io from 'socket.io-client';
let socket = '';
export function listen(action) {
if (socket === '') {
try {
socket = io("localhost:3000");
action({
type: 'connect',
state: 'success'
});
} catch (err) {
action({
type: 'connect',
state: 'fail'
});
}
}
socket.on('welcome', () => {
action({
type: 'welcome'
})
})
}
لقد كنت أحاول معرفة كيفية تشغيل اشتراك بمفتاح محدد. في الأصل ، سيتم تنفيذه جميعًا مرة واحدة عند تهيئته ، لذلك لا يوفر هذا الاشتراك سوى إغلاق الإرسال والمحفوظات 😄
الاشتراكات: {
الإعداد ({إرسال}) {
إرسال ({type: 'query'})
}
} هذا هو التنفيذ الأولي فقط لإجراء الإرسال ، ولا يقوم في الواقع بتنفيذ إجراء الاشتراك.
أدركت فجأة
التعليق الأكثر فائدة
جربت المقبس ، للإشارة فقط.