actions
ভুয়েজে অ্যাসিনক্রোনাস হয়। কলিং ফাংশনটি (ক্রিয়াকলাপের সূচক) কোনও ক্রিয়া সম্পন্ন হয়েছে তা জানার একমাত্র উপায় - একটি প্রতিশ্রুতি ফিরিয়ে দেওয়া এবং পরে এটি সমাধান করা।
এখানে একটি উদাহরণ রয়েছে: myAction
একটি প্রত্যাবর্তন করে Promise
, একটি এইচটিপি কল দেয় এবং Promise
পরে সংশোধন করে বা প্রত্যাখ্যান করে - সমস্ত অ্যাসিনক্রোনাসলি
actions: {
myAction(context, data) {
return new Promise((resolve, reject) => {
// Do something here... lets say, a http call using vue-resource
this.$http("/api/something").then(response => {
// http success, call the mutator and change something in state
resolve(response); // Let the calling function know that http is done. You may send some data back
}, error => {
// http failed, let the calling function know that action did not work out
reject(error);
})
})
}
}
এখন, যখন আপনার ভ্যু উপাদানটি শুরু myAction
করবে, এটি এই প্রতিশ্রুতিবদ্ধ বস্তুটি পাবে এবং এটি সফল হয়েছে কিনা তা জানতে পারে। ভ্যু উপাদানটির জন্য এখানে কিছু নমুনা কোড রয়েছে:
export default {
mounted: function() {
// This component just got created. Lets fetch some data here using an action
this.$store.dispatch("myAction").then(response => {
console.log("Got some data, now lets show something in this component")
}, error => {
console.error("Got nothing from server. Prompt user to check internet connection and try again")
})
}
}
আপনি উপরে দেখতে পারেন যে এটি actions
ফিরে আসার জন্য এটি অত্যন্ত উপকারী Promise
। অন্যথায় অ্যাকশন ইনিশিয়েটারের কী হবে তা জানার কোনও উপায় নেই এবং যখন ব্যবহারকারী ইন্টারফেসে কিছু দেখানোর মতো জিনিসগুলি স্থিতিশীল থাকে।
এবং সম্পর্কিত একটি সর্বশেষ নোট mutators
- যেমন আপনি যথাযথভাবে উল্লেখ করেছেন, সেগুলি সিঙ্ক্রোনাস। এগুলি স্টাফ পরিবর্তন করে state
এবং সাধারণত তাদের কাছ থেকে ডাকা হয় actions
। মিশে কোন প্রয়োজন নেই Promises
সঙ্গে mutators
হিসাবে, actions
হাতল যে অংশ।
সম্পাদনা করুন: ইউনি-দিকনির্দেশক ডেটা প্রবাহের ভিউেক্স চক্র সম্পর্কে আমার মতামত:
আপনি যদি this.$store.state["your data key"]
আপনার উপাদানগুলির মতো ডেটা অ্যাক্সেস করেন তবে ডেটা প্রবাহটি ইউনি-দিকনির্দেশক।
কর্ম থেকে প্রাপ্ত প্রতিশ্রুতি কেবলমাত্র উপাদানটি জানতে পারে যে কর্মটি সম্পূর্ণ।
উপাদানটি হয় উপরোক্ত উদাহরণে প্রতিশ্রুতি সমাধানের ফাংশন থেকে ডেটা নিতে পারে (ইউনি-দিকনির্দেশক নয়, সুতরাং প্রস্তাবিত নয়), বা সরাসরি $store.state["your data key"]
যা দিকনির্দেশনাযুক্ত এবং ভয়েক্স ডেটা লাইফাইসাইকেলের অনুসরণ করে।
উপরে উল্লিখিত অনুচ্ছেদটি Vue.set(state, "your data key", http_data)
আপনার ক্রিয়াকলাপে একবার http কলটি শেষ হয়ে গেলে আপনার বিবর্তককে ব্যবহারগুলি অনুমান করে ।