অন্য পৃষ্ঠায় Vue.js পুনঃনির্দেশ


133

আমি Vue.jsভ্যানিলা জাভাস্ক্রিপ্টের অনুরূপ একটি পুনর্নির্দেশ করতে চাই

window.location.href = 'some_url'

আমি কীভাবে Vue.js এ এটি অর্জন করতে পারি?


আপনি কি ভু রাউটার '/ আমার / ভুয়েরুটার / ইউআরএল'-এ সংজ্ঞায়িত কোনও রুটে পুনঃনির্দেশ বলতে চান? অথবা আপনি কোনও ব্রাউজারটি কিছু- url.com এ পুনর্নির্দেশ করেন ?
হাইটাটোডস্ট্রাক্ট

উত্তর:


187

আপনি যদি ব্যবহার করছেন তবে আপনার কোনও নির্দিষ্ট রুটে নেভিগেট করতে vue-routerব্যবহার router.go(path)করা উচিত । রাউটারটি ব্যবহার করে কোনও উপাদানগুলির মধ্যে থেকে অ্যাক্সেস করা যায় this.$router

অন্যথায়, window.location.href = 'some url';একক-পৃষ্ঠা অ্যাপ্লিকেশনগুলির জন্য সূক্ষ্ম কাজ করে।

সম্পাদনা : router.go()ভ্যুজেএস ২.০ এ পরিবর্তিত হয়েছে। আপনি পুনর্নির্দেশের জন্য router.push({ name: "yourroutename"})বা router.push("yourroutename")এখনই ব্যবহার করতে পারেন ।

https://router.vuejs.org/guide/essentials/named-routes.html


2
আমার ক্ষেত্রে ব্যবহারটি অন্য একটি অবিচ্ছিন্ন পৃষ্ঠায় সরাসরি নির্দেশ করতে হবে
জিমি ওবনিও অ্যাবোর

8
আমি পাচ্ছিলাম: Uncaught ReferenceError: router is not definedত্রুটি, কীভাবে উপাদানগুলিতে রাউটার ইনজেক্ট করবেন?
সৌরভ

@ ফিলিপেকম কী? একই জিনিস না?
ব্যারি ডি

3
router.push ("yourroutename") রাউটার.পুশ ({নাম: "yourroutename") এর মত নয়। প্রথমে সরাসরি রুটটি সংজ্ঞায়িত করা হয়। দ্বিতীয়টি নির্দিষ্ট নাম সহ রুটটি নেয়।
গোলাপী

8
this.$router.push('routename)
কা_লিন

84

দস্তাবেজ অনুসারে, রাউটার.পুশ পছন্দসই পদ্ধতির মতো বলে মনে হচ্ছে:

একটি পৃথক ইউআরএল নেভিগেট করতে, রাউটার.পশ ব্যবহার করুন। এই পদ্ধতিটি ইতিহাসের স্ট্যাকটিতে একটি নতুন এন্ট্রি ঠেলে দেয়, তাই যখন ব্যবহারকারী ব্রাউজারের পিছনে বোতামটি ক্লিক করেন তখন তাদের পূর্বের ইউআরএলে নেওয়া হবে।

উত্স: https://router.vuejs.org/en/essentials/navication.html

এফওয়াইআই: ওয়েবপ্যাক এবং উপাদান সেটআপ, একক পৃষ্ঠার অ্যাপ্লিকেশন (যেখানে আপনি মেইন.জেএস এর মাধ্যমে রাউটারটি আমদানি করেন), আমাকে এই বলে রাউটার ফাংশনগুলি কল করতে হয়েছিল:

this.$router

উদাহরণ: শর্ত পূরণের পরে যদি আপনি "হোম" নামক কোনও রুটে পুনঃনির্দেশ করতে চান:

this.$router.push('Home') 

1
সংকলনের (ওয়েবপ্যাক) সাথে এই প্রশ্নের কোনও সম্পর্ক নেই।
জিমি ওবনিও অ্যাবোর

12
ডাউনভোটের জন্য ধন্যবাদ, যদিও বেশিরভাগ লোকেরা ভিউ ক্লিপ, ওয়েবপ্যাক, রাউটার এবং স্টোর / ভেক্স সহ বিকাশ করবে এবং সম্ভবত রাউটারটি কল করতে না পারার সমস্যাটিতে চলে যাবে।
ডেভ সটিটিমানো

1
@ জিমি ওবনিওএবুর হাইওয়ে মন্তব্য না করে উটমেস উনমলিপা হাহা
চলোওয়াও

@ চলোয়াও তিনি সে, সাশ তুষাসিকিয়া! আমি একটি প্রতিক্রিয়া কাজী পেয়েছি, যদি আপনি দক্ষতা পান তবে আমাকে পিং করছে ...
জিমি ওবনিও অ্যাবোর


41

শুধু ব্যবহার করুন:

window.location.href = "http://siwei.me"

ভিউ-রাউটার ব্যবহার করবেন না, অন্যথায় আপনাকে " http://yoursite.com/#!/http://siwei.me " এ পুনঃনির্দেশ করা হবে

আমার পরিবেশ: নোড 6.2.1, মান 1.0.21, উবুন্টু।


1
আমি কোনও কারণ দেখছি না, কেন এটি ডাবল কোটে থাকতে হবে ..?
মরিটজ

1
প্রকৃতপক্ষে স্ট্যান্ডার্ডজ বলছে "পলায়ন এড়ানো ছাড়া স্ট্রিংয়ের জন্য একক উদ্ধৃতি ব্যবহার করুন" "
মরিটজ

এটি কিছু সময় আগে ছিল কিন্তু আমি আসলে আমি একক উদ্ধৃতি ব্যবহার করে এটি সমাধান করেছি, তবে আমার ধারণা ডাবল উদ্ধৃতিগুলিও কাজ করা উচিত এবং জটিল লিঙ্কগুলিতে ব্যবহারযোগ্য।
জিমি ওবনিও আবোর

প্রথমে মান সংস্করণ পরীক্ষা করুন। প্রথম সংস্করণে, সম্ভবত vue কোড কনভেনশন যত্ন করে না care তবে আমার পরিবেশে, কোড কনভেনশন সংকলন ত্রুটির কারণ ঘটবে (এস -6 সংকলন ভ্যানিলা জেএস থেকে)। আপনি যদি 'ES6' নোড মডিউলটি ব্যবহার না করেন, তবে এটি ঠিক আছে।
সিউই শেন 申思维

আপনি যদি এটি একটি নতুন ট্যাবে খুলতে চান?
Fthi.a.Abadi

29

কোনও উপাদান স্ক্রিপ্ট ট্যাগের ভিতরে থাকা অবস্থায় আপনি রাউটারটি ব্যবহার করতে পারেন এবং এর মতো কিছু করতে পারেন

this.$router.push('/url-path')

ধন্যবাদ মানুষ, সরল এবং সরাসরি এগিয়ে।
সমাধান স্পিরিট



6

আপনি যদি অন্য পৃষ্ঠায় রুট করতে চান this.$router.push({path: '/pagename'})

আপনি যদি প্যারাম দিয়ে রুট করতে চান this.$router.push({path: '/pagename', param: {param1: 'value1', param2: value2})



3

আপনি সরাসরি টেমপ্লেটে ভি-বাইন্ডও ব্যবহার করতে পারেন ...

<a :href="'/path-to-route/' + IdVariable">

এর :সংক্ষিপ্তসার v-bind


আপনি ES6 সিনট্যাক্সটিও ব্যবহার করতে পারেন:: href = " `/path-to-route/${IdVariable}`" বা এখানে বর্ণিত নামযুক্ত রুট ( রাউটার.ভয়েজ.এস.জি. / গাইড:href="{ name: 'NamedRouteDeclaredAtRouter' , params: { id: idValue } }"
এসেনটিয়ালস

1

যদি কেউ একটি পৃষ্ঠা /aথেকে অন্য পৃষ্ঠায় স্থায়ী পুনঃনির্দেশ চায়/b


আমরা redirect:বিকল্পটিতে যুক্ত বিকল্পটি ব্যবহার করতে পারি router.js। উদাহরণস্বরূপ যদি আমরা যখন ব্যবহারকারীকে মূল বা বেস ইউআরএল টাইপ করে তখন ব্যবহারকারীদের সর্বদা একটি পৃথক পৃষ্ঠায় পুনর্নির্দেশ করতে চাই /:

const router = new Router({
  mode: "history",
  base: process.env.BASE_URL,
  routes: [
    {
      path: "/",
      redirect: "/someOtherPage",
      name: "home",
      component: Home,
      // () =>
      // import(/* webpackChunkName: "home" */ "./views/pageView/home.vue"),

    },
   ]

0
<div id="app">
   <a :href="path" />Link</a>
</div>

<script>
      new Vue({
        el: '#app',
        data: {
          path: 'https://www.google.com/'
        }
      });
</script> enter code here

0

সুতরাং, আমি যা খুঁজছিলাম কেবল সেখানেই রাখব window.location.hrefএবং উপসংহারটি এসে পৌঁছেছিলাম যে পুনর্নির্দেশের সবচেয়ে ভাল এবং দ্রুততম উপায়টি রুটে রয়েছে (সেভাবে আমরা পুনঃনির্দেশের আগে কিছু লোড করার জন্য অপেক্ষা করি না)।

এটার মত:

routes: [
    {
        path: "/",
        name: "ExampleRoot",
        component: exampleComponent,
        meta: {
            title: "_exampleTitle"
        },
        beforeEnter: () => {
            window.location.href = 'https://www.myurl.io';
        }
    }]

হতে পারে এটি কারও সাহায্য করবে ..


0

আপনার মূল অনুরোধের সাথে তাল মিলিয়ে চলার জন্য:

window.location.href = 'some_url'

আপনি এর মতো কিছু করতে পারেন:

<div @click="this.window.location='some_url'">
</div>

নোট করুন যে এটি ভ্যুর রাউটার ব্যবহারের সুবিধা গ্রহণ করবে না, তবে আপনি যদি "ভ্যানিলা জাভাস্ক্রিপ্টের অনুরূপ Vue.js তে পুনর্নির্দেশ করতে চান", তবে এটি কার্যকর হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.