当前位置:   article > 正文

Vue页面间传值(使用路由传参,含params、query)_vue使用params传参

vue使用params传参

目录

总结:

需求:

实现方法:

1、params传参

2、query传递参数


总结:

query传参通过path跳转,params传参通过name跳转

需求:

忘记密码页面输入邮箱后点击下一步发送验证码请求,跳转到验证码页面中让用户输入验证码,在这个过程中需要将忘记密码页面的邮箱参数,传递到验证码页面。

实现方法:

将忘记密码页面中通过路由跳转时传参,将email传递到验证码页面,同时在验证码页面路由上配置参数,在验证码页面中使用钩子函数(created),检测路由,发生变化时,调用路由参数的方法,将上一页面数据存储到本页面即可。

1、params传参

params传参可以认为是post的方法,因为他的一种传参方法是看不到参数的,获取的时候通过params来获取。通过name来匹配相应的组件。

router/index.js:

  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. Vue.use(VueRouter)
  4. export default new Router({
  5. routes: [
  6. //验证码页面
  7. {
  8. //将忘记密码页面中的email传到此页面
  9. path: '/resetcode/:email',
  10. name: 'resetcode',
  11. component: () => import('@/pages/ResetCode'),
  12. },
  13. //忘记密码页面
  14. {
  15. path: '/forget',
  16. component: () => import('@/pages/Forget'),
  17. },
  18. ]
  19. })

forget页面(params传参):

  1. this.$router.push({
  2. name: "resetcode",
  3. params: {
  4. email: this.email,
  5. },
  6. });

resetcode页面:

  1. <script>
  2. export default {
  3. name: "ResetCode",
  4. data() {
  5. return {
  6. code: ""
  7. };
  8. },
  9. //created 钩子函数 Vue 初始化时执行
  10. created: function () {
  11. this.getParams();
  12. },
  13. watch: {
  14. //监测路由变化,只要变化了就调用路由参数方法将数据存储本组件
  15. $route: "getParams",
  16. },
  17. methods: {
  18. getParams: function () {
  19. //取得路由带过来的参数
  20. let routeEmail = this.$route.params.email;
  21. //将数据放在当前组件的数据内
  22. this.email = routeEmail;
  23. },
  24. },
  25. };
  26. </script>

2、query传递参数

query传参可以认为是get传参,参数会在请求的url中显示出来,以?,&连接。

forget页面(params传参):

  1. this.$router.push({
  2. path: "/resetcode",
  3. query: {
  4. email: this.email,
  5. },
  6. });

resetcode页面:

  1. <script>
  2. export default {
  3. name: "ResetCode",
  4. data() {
  5. return {
  6. code: ""
  7. };
  8. },
  9. //created 钩子函数 Vue 初始化时执行
  10. created: function () {
  11. this.getQuerys();
  12. },
  13. watch: {
  14. //监测路由变化,只要变化了就调用路由参数方法将数据存储本组件
  15. $route: "getQuerys",
  16. },
  17. methods: {
  18. getQuerys: function () {
  19. //取得路由带过来的参数
  20. let routeEmail = this.$route.params.email;
  21. //将数据放在当前组件的数据内
  22. this.email = routeEmail;
  23. },
  24. },
  25. };
  26. </script>

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读