আমি vue.js. তে উপাদানগুলির মধ্যে ডেটা কীভাবে পাস করব তা বোঝার জন্য সংগ্রাম করছি আমি ডক্সটি বেশ কয়েকবার পড়েছি এবং অনেকগুলি সম্পর্কিত প্রশ্ন এবং টিউটোরিয়াল দেখেছি, তবে আমি এখনও এটি পাই না getting
এই সম্পর্কে আমার মাথাটি গুটিয়ে নিতে, আমি একটি খুব সাধারণ উদাহরণটি সম্পূর্ণ করতে সহায়তা আশা করছি ing
- একটি উপাদান ব্যবহারকারীর একটি তালিকা প্রদর্শন (সম্পন্ন)
- কোনও লিঙ্ক ক্লিক করা হলে (সম্পন্ন) হয়ে গেলে ব্যবহারকারী ডেটাটি কোনও নতুন উপাদানকে প্রেরণ করুন - নীচে আপডেট দেখুন।
- ব্যবহারকারীর ডেটা সম্পাদনা করুন এবং এটিকে মূল উপাদানটিতে ফেরত পাঠান (এখন পর্যন্ত এটি অর্জিত হয়নি)
এখানে একটি ফিজল রয়েছে, যা দ্বিতীয় ধাপে ব্যর্থ হয়েছে: https://jsfiddle.net/retrogradeMT/d1a8hps0/
আমি বুঝতে পারি যে নতুন উপাদানটিতে ডেটা প্রেরণের জন্য আমার প্রপস ব্যবহার করা দরকার, তবে কীভাবে এটি কার্যকরভাবে করবেন তা নিশ্চিত নই। আমি কীভাবে নতুন উপাদানটিকে ডেটা বাঁধবো?
এইচটিএমএল:
<div id="page-content">
<router-view></router-view>
</div>
<template id="userBlock" >
<ul>
<li v-for="user in users">{{user.name}} - <a v-link="{ path: '/new' }"> Show new component</a>
</li>
</ul>
</template>
<template id="newtemp" :name ="{{user.name}}">
<form>
<label>Name: </label><input v-model="name">
<input type="submit" value="Submit">
</form>
</template>
প্রধান উপাদান জন্য জেএস:
Vue.component('app-page', {
template: '#userBlock',
data: function() {
return{
users: []
}
},
ready: function () {
this.fetchUsers();
},
methods: {
fetchUsers: function(){
var users = [
{
id: 1,
name: 'tom'
},
{
id: 2,
name: 'brian'
},
{
id: 3,
name: 'sam'
},
];
this.$set('users', users);
}
}
})
দ্বিতীয় উপাদান জন্য জেএস:
Vue.component('newtemp', {
template: '#newtemp',
props: 'name',
data: function() {
return {
name: name,
}
},
})
হালনাগাদ
ঠিক আছে, আমি দ্বিতীয় ধাপটি খুঁজে পেয়েছি। অগ্রগতিটি দেখানোর জন্য এখানে একটি নতুন ফিডল রয়েছে: https://jsfiddle.net/retrogradeMT/9pffnmjp/
যেহেতু আমি ভ্যু-রাউটার ব্যবহার করছি, আমি কোনও নতুন উপাদানকে ডেটা প্রেরণের জন্য প্রপস ব্যবহার করি না। পরিবর্তে, আমার ভি-লিঙ্কে প্যারামগুলি সেট করতে হবে এবং তারপরে এটি গ্রহণ করার জন্য একটি ট্রানজিশন হুক ব্যবহার করুন।
ভি-লিঙ্ক পরিবর্তনগুলি ভ্যু-রাউটার ডক্সে নামযুক্ত রুটগুলি দেখে :
<a v-link="{ name: 'new', params: { name: user.name }}"> Show new component</a>
তারপরে উপাদানটিতে, রুটের বিকল্পগুলিতে ডেটা যুক্ত করুন ট্রানজিশন হুকগুলি দেখুন :
Vue.component('newtemp', {
template: '#newtemp',
route: {
data: function(transition) {
transition.next({
// saving the id which is passed in url
name: transition.to.params.name
});
}
},
data: function() {
return {
name:name,
}
},
})