Vux: كل من إظهار النخب والتنبيه هما اتجاهان ، ودائمًا ما يحذر عند استخدام تدفق البيانات أحادي الاتجاه من vuex

تم إنشاؤها على ٣ مايو ٢٠١٦  ·  12تعليقات  ·  مصدر: airyland/vux

الإصدار

"vux": "0.0.106"

Android أو iOS ، أي متصفح؟

الجميع

الرموز الخاصة بك

<toast :show="toast.show">{{toast.msg}}</toast>

السلوك المتوقع والسلوك الفعلي.

نظرًا لاستخدامه كمكوِّن عالمي ، فإن مكوناته الفرعية تستخدم مباشرة تدفق البيانات أحادي الاتجاه vuex لتشغيل النافذة المنبثقة ، لكن عرض التوست والتنبيه كلاهما في اتجاهين ، لذلك يستمرون في الإبلاغ عن التحذير ، والاضطراب الوسواس القهري غير مريح .

خطوات إعادة إنتاج المشكلة

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

واجه مزيج vuex + vux أيضًا التحذير المرتبط بطريقتين عند استخدام مكون Popup. في البداية ، أردت أيضًا الاستماع إلى الأحداث عند إجراء التغييرات!في وقت لاحق وجدت هنا حلاً جديدًا: الخصائص المحسوبة

اليك مثال بسيط

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

بالمقارنة مع أحداث المراقبة ، هناك طبقة إضافية من تغليف سمات الحساب ، ولكنها أيضًا توديع للتحذير

ال 12 كومينتر

إذن ما هو اقتراحك؟ TwoWay لأن التشغيل الداخلي للمكون سيغير العرض ، وإلا فإن الحالة ستكون غير طبيعية.

ثنائي الاتجاه هو فقط للتحقق مما إذا كان ملزمًا في اتجاهين ، والآن هو التحقق من تحذير الوقت

لذلك أقترح إلغاء التحقق من الربط ثنائي الاتجاه ، لكنك لا تزال تغير قيمة العرض داخليًا تلقائيًا ، بحيث إذا كنت تستخدم اتجاهين خارجيًا ، يمكنك تغيير القيمة تلقائيًا.

بالطبع ، أنا هنا للتحكم في قيمة العرض خارجيًا.

ما رأيك؟

أليس هذا مجرد فحص؟

بالطبع هو مجرد فحص!

لست بحاجة إلى الكتابة بطريقتين ، لكنها لا تزال ملزمة بالمزامنة في المكون ، ويمكن أن تظل ثنائية الاتجاه

لقد انتقلت للتو إلى VUE لمدة شهر ، والطريق ليس عميقًا ، وآمل أن أنصح 😄

يجب أن تكون مجرد وظيفة تحقق لربط المكون. إذا لم تكن بحاجة إلى ربط ثنائي الاتجاه لعرض التنبيه ، فيمكنك فقط تغيير قيمة العرض من خلال الحدث on-hide .

نعم ، التنبيه موجود بالفعل. Toast ، لقد قمت بتعيين setTimeout لتغيير العرض المرتبط. بالطبع ، من الأفضل أن يكون لديك إخفاء.

أعتقد أيضًا أن التوست والتنبيه ليسا متوافقين تمامًا مع vuex. فمن الأفضل أن تكون هناك أحداث مخفية والحفاظ على نفس واجهة التنبيهات.

JianleiZhang ستنفذ في الإصدار القادم.

واجه مزيج vuex + vux أيضًا التحذير المرتبط بطريقتين عند استخدام مكون Popup. في البداية ، أردت أيضًا الاستماع إلى الأحداث عند إجراء التغييرات!في وقت لاحق وجدت هنا حلاً جديدًا: الخصائص المحسوبة

اليك مثال بسيط

<template>
  <popup :show.sync="showed">
    <group>
      <switch title="just switch" :value.sync="showed"></switch>
    </group>
   </popup>
</template>

<script>
export default {
  vuex: {
    getters: {
      getShow
    },
    actions: {
      updateShow
    }
  },
  computed: {
    showed: {
      get: function () {
        return this.getShow
      },
      set: function (val) {
        this.updateShow(val)
      }
    }
  }
}
</script>

بالمقارنة مع أحداث المراقبة ، هناك طبقة إضافية من تغليف سمات الحساب ، ولكنها أيضًا توديع للتحذير

pzxbc الرائعة: مبتسم:

pzxbc لقد وجدت أن إرسال طفرة لتعديل قيمة gethow ، ثم حساب السمة المعروضة سيمرر القيمة إلى قيمة العرض الداخلية للمكون المنبثق لتغيير حالة المكون. ما سبق هو ما أحتاجه ، لكنني وجدت أن سمة الحساب التالية الموضحة ستستدعي الوظيفة this.updateShow ملزم بالتعيين ، لأنني أستخدم console.log للعثور على أن الطفرة تسمى مرتين.

أسلوبي هو:

      set: function (val) {
        if (val === false){
          this.updateAlert(val)
        }
      }
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات