Dynamic Routing and Examples

Vue JS Fundamentals for Beginners Navigation And Vue Router
7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€65.39
List Price:  €93.41
You save:  €28.02
£55.92
List Price:  £79.90
You save:  £23.97
CA$96.01
List Price:  CA$137.16
You save:  CA$41.15
A$107.15
List Price:  A$153.08
You save:  A$45.93
S$95.13
List Price:  S$135.90
You save:  S$40.77
HK$547.14
List Price:  HK$781.66
You save:  HK$234.52
CHF 63.86
List Price:  CHF 91.23
You save:  CHF 27.37
NOK kr775.40
List Price:  NOK kr1,107.76
You save:  NOK kr332.36
DKK kr487.78
List Price:  DKK kr696.86
You save:  DKK kr209.07
NZ$118.01
List Price:  NZ$168.60
You save:  NZ$50.58
د.إ257.06
List Price:  د.إ367.24
You save:  د.إ110.18
৳7,680.49
List Price:  ৳10,972.60
You save:  ৳3,292.11
₹5,842.03
List Price:  ₹8,346.11
You save:  ₹2,504.08
RM332.86
List Price:  RM475.54
You save:  RM142.67
₦86,437.65
List Price:  ₦123,487.65
You save:  ₦37,050
₨19,491.96
List Price:  ₨27,846.85
You save:  ₨8,354.89
฿2,586.09
List Price:  ฿3,694.58
You save:  ฿1,108.48
₺2,265.39
List Price:  ₺3,236.41
You save:  ₺971.02
B$363.53
List Price:  B$519.35
You save:  B$155.82
R1,302.64
List Price:  R1,861
You save:  R558.35
Лв127.90
List Price:  Лв182.73
You save:  Лв54.82
₩96,270.48
List Price:  ₩137,535.16
You save:  ₩41,264.67
₪262.29
List Price:  ₪374.71
You save:  ₪112.42
₱4,033.94
List Price:  ₱5,763.02
You save:  ₱1,729.07
¥10,867.12
List Price:  ¥15,525.12
You save:  ¥4,658
MX$1,187.12
List Price:  MX$1,695.96
You save:  MX$508.84
QR254.93
List Price:  QR364.20
You save:  QR109.27
P994.08
List Price:  P1,420.18
You save:  P426.09
KSh9,360.69
List Price:  KSh13,372.99
You save:  KSh4,012.30
E£3,358.63
List Price:  E£4,798.26
You save:  E£1,439.62
ብር4,003.77
List Price:  ብር5,719.92
You save:  ብር1,716.15
Kz58,546.63
List Price:  Kz83,641.63
You save:  Kz25,095
CLP$67,216.99
List Price:  CLP$96,028.39
You save:  CLP$28,811.40
CN¥506.70
List Price:  CN¥723.89
You save:  CN¥217.19
RD$4,073.53
List Price:  RD$5,819.58
You save:  RD$1,746.04
DA9,418.34
List Price:  DA13,455.35
You save:  DA4,037.01
FJ$158.31
List Price:  FJ$226.17
You save:  FJ$67.86
Q543.96
List Price:  Q777.12
You save:  Q233.16
GY$14,650.29
List Price:  GY$20,929.88
You save:  GY$6,279.59
ISK kr9,815.39
List Price:  ISK kr14,022.59
You save:  ISK kr4,207.20
DH707.71
List Price:  DH1,011.06
You save:  DH303.35
L1,237.78
List Price:  L1,768.33
You save:  L530.55
ден4,025.24
List Price:  ден5,750.59
You save:  ден1,725.35
MOP$563.96
List Price:  MOP$805.69
You save:  MOP$241.73
N$1,304.33
List Price:  N$1,863.42
You save:  N$559.08
C$2,570.38
List Price:  C$3,672.13
You save:  C$1,101.75
रु9,397.27
List Price:  रु13,425.24
You save:  रु4,027.97
S/263.43
List Price:  S/376.35
You save:  S/112.91
K270.11
List Price:  K385.89
You save:  K115.77
SAR262.49
List Price:  SAR375.01
You save:  SAR112.51
ZK1,873.89
List Price:  ZK2,677.10
You save:  ZK803.21
L325.37
List Price:  L464.84
You save:  L139.46
Kč1,643.47
List Price:  Kč2,347.91
You save:  Kč704.44
Ft25,458.03
List Price:  Ft36,370.18
You save:  Ft10,912.14
SEK kr764.90
List Price:  SEK kr1,092.76
You save:  SEK kr327.86
ARS$61,327.27
List Price:  ARS$87,614.14
You save:  ARS$26,286.87
Bs483.57
List Price:  Bs690.85
You save:  Bs207.27
COP$273,218.78
List Price:  COP$390,329.27
You save:  COP$117,110.49
₡35,710.66
List Price:  ₡51,017.42
You save:  ₡15,306.75
L1,733.65
List Price:  L2,476.75
You save:  L743.09
₲524,442.73
List Price:  ₲749,236.02
You save:  ₲224,793.28
$U2,683.09
List Price:  $U3,833.15
You save:  $U1,150.06
zł283.24
List Price:  zł404.64
You save:  zł121.40
Already have an account? Log In

Transcript

All right, in this lecture, we will look into how to create specific URLs for specific people, right. So the main goal of this lecture is to create a URL that can be shared. And when the URL is clicked, I will get the simpson house data. So let's go. So the first thing, what we need to do for that is instead of out to fight for the part of person, we can add slash. And here we are expecting another parameter, right?

So the parameter is person ID. So this is what we're expecting. And when the person ID is dynamic, that's when you put the colon before it. So if you're going to have any dynamic part in the URL, you're going to have a colon in front of it. So slash person will go for the person profile component and colon person, it will go for the person's ID. All right, so if I can save this, and while instead of people, or instead the person component, what we can do is for clicking, and instead the person component on view profile, we no longer need the name and parameters.

We're not going to send them Instead, what we're going to do is we can also remove this context variable. Instead, we are going to normally navigate, we can say view profile. From sorry, person, we can say, person, slash. And in addition to this what we can also send us this.person.id. So if we go to the data Jason, for every single person object, we have something called as ID or its underscore ID, right? Or underscore ID.

So this will be sent, and you can save it. And instead of the person profile component, what we can do is it no longer requires a prop, so we can remove the prop section here. Instead, we can have a data component data property. This will have a person ID and this ID can be retrieved through this dot dollar route dot params dot person ID. So parameters is the parameters that we're going to send. In our case, it's the person ID in the router.

So inside the person component where it says person slash, and whatever this content is, this automatically becomes the person ID. so here we can say person ID. So for the biggest part, what we can do is we can comment it all out. So just so we don't get any errors, we can also say, comment, and we can see mounted and console log it can go to though, and have a click something. I'm getting the person ID, right. And if you can see in the URL bar, we are getting the specific URL for that particular person.

So if I have more to share This URL with anyone with anyone, I'm going to get the same data, right? So it won't throw me an error. It won't say props required because you're not using props. So now it's our duty to find out which which person does it belong to and fetch the person's data. So what we can do is we can, we need to find the index of the persons who has this ID, and then we can fetch the person with that index. Right?

So we'll go to person profile, I'll show you that's not too complex. So what we can do is inside mounted, we can also have this index. And we could also have the person because that's where it's quiet. And instead of the computed properties, what we can do is we can suppose in here, done data. So here we also need to import the data, data file. index.

All right, so now we need to find the index. So the way we can do is we can say for each for the data array, and inside the array we have, each object has an element. And we can write an IF loop here that says object dot values. And instead we can pass element.in indexOf this dot person ID equals equal to zero. Then we can have the VM context variable, and we have got person ID equal to object dot values. All right, so what's happening is data is an array right?

So Inside this array, we have six objects. So for each object, we have particular key value pairs. So what I'm doing is inside the data array for each object, I'm extracting the values of the object from the keys. So I'm, I'm only going to get these values instead of the keys only this values. So for the values, I'm searching ID, which we sent. So if the value consists of the person ID, then that's the index of the person.

So now what we can do is when we have the index, this should be index right? Yeah. So when we have the index, the computed property will automatically run this person property will be updated by data and the index. So if I uncomment all this and if I save and run, everything should work fine except there is an error. It says name have been declined, okay. So the reason why this is this one is coming is because of prints count, right?

We need to have our the computed property that says Friends count, and it should return this door person. Friend start length. And now we're going to refresh. And I'm going to get only one error that says name of undefined. So why are we getting that? So the reason why we might be getting that is because the template is being loaded and then the data is being fetched, right?

So instead of mounted, I can say created, and hopefully we should not get that error. Yep. So what's happening is that if you're using mounted, it will run after the template has been mounted right. So when the template has been mounted, it looks for a property called as person and person until until this point of time during the rendering is null. So none of none of name is going to throw an error. But if we say created, created is usually run before the mounted so by reading created before the mounted, we are getting the data, we're sending it to person and the In displaying it, so leading to lowers.

So now we have this link, and you can happily share it to any person award. So usually I would host on to a free hosting website like Firebase or GitHub, and we could share the link. And we can go back. And we can do that for any person. Cool, right. So that's how you create dynamic routing in Vue js.

So now you can have dynamic URLs. So that's it for routing. And that's it for this lecture. I'll see you in the next one.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.