আমি কীভাবে Vue.js এ কোয়েরি প্যারামিটারগুলি আনতে পারি?
যেমন http://somesite.com?test=yay
।
আনার কোনও উপায় খুঁজে পাচ্ছি না বা এর জন্য আমাকে খাঁটি জেএস বা কিছু লাইব্রেরি ব্যবহার করতে হবে?
আমি কীভাবে Vue.js এ কোয়েরি প্যারামিটারগুলি আনতে পারি?
যেমন http://somesite.com?test=yay
।
আনার কোনও উপায় খুঁজে পাচ্ছি না বা এর জন্য আমাকে খাঁটি জেএস বা কিছু লাইব্রেরি ব্যবহার করতে হবে?
উত্তর:
রুট অবজেক্টের ডক্স অনুসারে , $route
আপনার উপাদানগুলি থেকে কোনও সামগ্রীতে আপনার অ্যাক্সেস রয়েছে যা আপনাকে যা প্রয়োজন তা প্রকাশ করে। এক্ষেত্রে
//from your component
console.log(this.$route.query.test) // outputs 'yay'
vue-router
বেশি ব্যবহার না করে থাকেন তবে এটি অবশ্যই একটি সদৃশ হবে, কারণ তাকে স্ট্যান্ডার্ড জেএস পদ্ধতি ব্যবহার করতে হবে।
vue-router
ট্যাগটি তৈরি করে যুক্ত করেছি।
return next({ name: 'login', query:{param1: "foo" }, });
কাজ করে না। লগইন উপাদান ভিতরে প্রোপ অপরিজ্ঞাত করা param1
হয়।
অমান্য-রুট ছাড়াই, ইউআরএল বিভক্ত করুন
var vm = new Vue({
....
created()
{
let uri = window.location.href.split('?');
if (uri.length == 2)
{
let vars = uri[1].split('&');
let getVars = {};
let tmp = '';
vars.forEach(function(v){
tmp = v.split('=');
if(tmp.length == 2)
getVars[tmp[0]] = tmp[1];
});
console.log(getVars);
// do
}
},
updated(){
},
আরেকটি সমাধান https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search :
var vm = new Vue({
....
created()
{
let uri = window.location.search.substring(1);
let params = new URLSearchParams(uri);
console.log(params.get("var_name"));
},
updated(){
},
location.href
যখন location.search
সহজেই পাওয়া যায় তবে কেন নিজেকে বিভক্ত করবেন ? বিকাশকারী.মোজিলা.অর্গ / en var querypairs = window.location.search.substr(1).split('&');
-US/docs/Web/API/… উদাহরণস্বরূপ ক্যোয়ারির নাম-মান জোড়গুলি '=' দ্বারা বিভক্ত করা সর্বদা কার্যকর হবে না কারণ আপনি নাম ছাড়া কোরিয়ার প্যারামিটারগুলিও পাস করতে পারবেন; উদাহরণস্বরূপ, ?par1=15&par2
আপনার কোডটি এখন '2 'দ্বারা বিভাজন হিসাবে par2 এ একটি ব্যতিক্রম বাড়িয়ে তুলবে কেবলমাত্র 1 টি উপাদান দিয়ে টিএমপি হবে।
undefined
থেকে getVars['par2']
।
ভ্যুজেএস-এর নতুনদের সহায়তা করার জন্য আরও বিস্তারিত উত্তর:
এবং কোড নিজেই:
<script src="https://unpkg.com/vue-router"></script>
var router = new VueRouter({
mode: 'history',
routes: []
});
var vm = new Vue({
router,
el: '#app',
mounted: function() {
q = this.$route.query.q
console.log(q)
},
});
<script src="https://unpkg.com/vue-router"></script>
new Vue({ router, ... })
বৈধ সিনট্যাক্স নয়।
আর একটি উপায় (ধরে নিচ্ছেন যে আপনি ব্যবহার করছেন) vue-router
), আপনার রাউটারের কোনও প্রপিতে ক্যোয়ারী পরম ম্যাপ করা। তারপরে আপনি এটিকে আপনার উপাদান কোডের অন্য কোনও প্রোপের মতো আচরণ করতে পারেন। উদাহরণস্বরূপ, এই রুটটি যুক্ত করুন;
{
path: '/mypage',
name: 'mypage',
component: MyPage,
props: (route) => ({ foo: route.query.foo })
}
তারপরে আপনার উপাদানগুলিতে আপনি প্রপটি স্বাভাবিক হিসাবে যুক্ত করতে পারেন;
props: {
foo: {
type: String,
default: null
}
},
তারপরে এটি উপলব্ধ হবে this.foo
এবং আপনি এটি দিয়ে যা কিছু করতে পারেন (যেমন কোনও নজরদারি সেট করা ইত্যাদি)
এই তারিখ হিসাবে, গতিশীল রাউটিং ডক্স অনুযায়ী সঠিক উপায় :
this.$route.params.yourProperty
পরিবর্তে
this.$route.query.yourProperty
query
ইউআরএল থেকে প্রশ্নগুলি পেতে আপনার ব্যবহার করা উচিত । ডক্স থেকে: $ route.params ছাড়াও, $ রুট বস্তুর এছাড়াও অন্যান্য প্রয়োজনীয় তথ্য যেমন $ route.query যেমন অনাবৃত (যদি সেখানে URL একটি ক্যোয়ারী হয়)
আপনি ভ্যু-রাউটার ব্যবহার করতে পারেন I আমার নীচে একটি উদাহরণ রয়েছে:
URL: www.example.com?name=john&lastName=doe
new Vue({
el: "#app",
data: {
name: '',
lastName: ''
},
beforeRouteEnter(to, from, next) {
if(Object.keys(to.query).length !== 0) { //if the url has query (?query)
next(vm => {
vm.name = to.query.name
vm.lastName = to.query.lastName
})
}
next()
}
})
নোট: ইন beforeRouteEnter
ফাংশন আমরা মত উপাদান সম্পত্তিসমূহ অ্যাক্সেস করতে পারছি না: this.propertyName
.That কেন আমি পাস আছে vm
করার next
function.It অ্যাক্সেস করতে recommented পথ Vue instance.Actually হয় vm
এটা Vue উদাহরণস্বরূপ দাঁড়িয়েছে
আপনি এই ফাংশনটি ব্যবহার করে পেতে পারেন।
console.log(this.$route.query.test)
যদি আপনার সার্ভার পিএইচপি ব্যবহার করে তবে আপনি এটি করতে পারেন:
const from = '<?php echo $_GET["from"];?>';
শুধু কাজ করে।