আমার একটি ভ্যু 2 প্রকল্প রয়েছে যার অনেকগুলি (50+) একক-ফাইল উপাদান রয়েছে । আমি রাউটিংয়ের জন্য ভ্যু-রাউটার এবং রাজ্যের জন্য ভিউক্স ব্যবহার করি।
হেল্পার্স.জেস নামে একটি ফাইল রয়েছে যা সাধারণ-উদ্দেশ্যমূলক ফাংশনগুলির একটি গুচ্ছ ধারণ করে, যেমন একটি স্ট্রিংয়ের প্রথম অক্ষরকে মূলধন করে। এই ফাইলটি দেখতে এমন দেখাচ্ছে:
export default {
capitalizeFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
}
আমার মেইন.জেএস ফাইলটি অ্যাপ্লিকেশন শুরু করে:
import Vue from 'vue'
import VueResource from "vue-resource"
import store from "./store"
import Router from "./router"
import App from "./components/App.vue"
Vue.use(VueResource)
const app = new Vue({
router: Router,
store,
template: '<app></app>',
components: { App }
}).$mount('#app')
আমার App.vue ফাইলটিতে টেমপ্লেট রয়েছে:
<template>
<navbar></navbar>
<div class="container">
<router-view></router-view>
</div>
</template>
<script>
export default {
data() {
return {
//stuff
}
}
}
</script>
তারপরে আমার কাছে একক ফাইলের উপাদানগুলির একটি গুচ্ছ রয়েছে, যা <router-view>
ভ্যু-রাউটারটি App.vue টেমপ্লেটে ট্যাগের অভ্যন্তরে নেভিগেট করতে পরিচালনা করে ।
এখন বলা যাক যে সামোমিকম্পোনেন্ট.ভ্যুতেcapitalizeFirstLetter()
সংজ্ঞায়িত এমন উপাদানটির ভিতরে আমার ফাংশনটি ব্যবহার করা দরকার । এটি করার জন্য, আমাকে প্রথমে এটি আমদানি করতে হবে:
<template>Some Component</template>
<script>
import {capitalizeFirstLetter} from '../helpers.js'
export default {
data() {
return {
myString = "test"
}
},
created() {
var newString = this.capitalizeFirstLetter(this.myString)
}
}
</script>
এটি দ্রুত একটি সমস্যায় পরিণত হয় কারণ আমি ফাংশনটি অনেকগুলি আলাদা আলাদা আলাদা আলাদা উপাদানগুলিতে আমদানি করি, যদি না সেগুলি না হয়। এটি পুনরাবৃত্তি বলে মনে হচ্ছে এবং প্রকল্পটি বজায় রাখা আরও শক্ত করে তোলে। উদাহরণস্বরূপ, যদি আমি helpers.js, বা এর অভ্যন্তরের ক্রিয়াকলাপগুলির নাম পরিবর্তন করতে চাই, তবে আমাকে তখন আমদানি করা প্রতিটি উপাদানগুলিতে যেতে হবে এবং আমদানির বিবরণীটি পরিবর্তন করতে হবে।
দীর্ঘ গল্প সংক্ষিপ্ত: আমি কীভাবে হেল্পার্স.জেস এর অভ্যন্তরীণ ফাংশনগুলি বিশ্বব্যাপী উপলভ্য করব যাতে আমি তাদের যে কোনও উপাদানগুলির মধ্যে প্রথমে আমদানি না করে কল করতে পারি এবং তারপরে this
ফাংশনটির নামটি সংশোধন করতে পারি? আমি মূলত এটি করতে সক্ষম হতে চাই:
<script>
export default {
data() {
return {
myString = "test"
}
},
created() {
var newString = capitalizeFirstLetter(this.myString)
}
}
</script>
this
।