• Vue学习之路由vue-router传参及嵌套小结(十)


    一、路由传递参数:

    1、使用query传值:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>路由</title>
        <script src="./lib/vue.js"></script>
        <!-- 1.安装vue-router路由模块 -->
        <script src="./lib/vue-router.js"></script>
      </head>
      <body>
        <div id="app">
          <!-- 如果在路由中,使用 查询字符串,给路由传递参数,则不需要修改路由规则的path属性 -->
          <router-link to="/login?id=10&name=zs">登录</router-link>
          <router-link to="/register">注册</router-link>
          <router-view></router-view>
        </div>
        <script>
          var login = {
            template:
              "<h1>登录--{{ $route.query.id }}--{{ $route.query.name }}</h1>",
            data() {
              return {
                msg: "123"
              };
            },
            creadtd() {
              //组件的生命周期钩子函数
              // console.log(this.$route);
              console.log(this.$route.query.id);
            }
          };
          var register = {
            template: "<h1>注册组件</h1>"
          };
          var routerObj = new VueRouter({
            routes: [
              { path: "/login", component: login },
              { path: "/register", component: register }
            ]
          });
          var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            router: routerObj
          });
        </script>
      </body>
    </html>

    2、使用params 传参:

    地址上需要设置下第二个参数ID

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>路由</title>
        <script src="./lib/vue.js"></script>
        <!-- 1.安装vue-router路由模块 -->
        <script src="./lib/vue-router.js"></script>
      </head>
      <body>
        <div id="app">
          <!-- 如果在路由中,使用 查询字符串,给路由传递参数,则不需要修改路由规则的path属性 -->
          <router-link to="/login/12">登录</router-link>
          <router-link to="/register">注册</router-link>
          <router-view></router-view>
        </div>
        <script>
          var login = {
            template: "<h1>登录--{{ $route.params.id }}</h1>",
            data() {
              return {
                msg: "123"
              };
            },
            creadtd() {
              //组件的生命周期钩子函数
              console.log(this.$route.params.id);
            }
          };
          var register = {
            template: "<h1>注册组件</h1>"
          };
          var routerObj = new VueRouter({
            routes: [
              // 除了上面的字母的不同外,这里还需要设置下添加的第二个参数id
              { path: "/login/:id", component: login },
              { path: "/register", component: register }
            ]
          });
          var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            router: routerObj
          });
        </script>
      </body>
    </html>

    二、嵌套路由children:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>路由</title>
        <script src="./lib/vue.js"></script>
        <!-- 1.安装vue-router路由模块 -->
        <script src="./lib/vue-router.js"></script>
      </head>
      <body>
        <div id="app">
          <router-link to="/account">Account</router-link>
          <router-view></router-view>
        </div>
        <template id="tmp1">
          <div>
            <h1>这是Account组件</h1>
            <router-link to="/account/login">登录</router-link>
            <router-link to="/account/register">注册</router-link>
            <router-view></router-view>
          </div>
        </template>
        <script>
          var account = {
            template: "#tmp1"
          };
          var login = {
            template: "<h3>登录组件</h3>"
          };
          var register = {
            template: "<h3>注册组件</h3>"
          };
          var router = new VueRouter({
            routes: [
              {
                path: "/account",
                component: account,
                // 使用children 属性,实现子路由,同时子路由的path前面,不要带/,
                // 否则永远以根路径开始请求,这样不方便我们用户去理解URL地址
                children: [
                  {
                    path: "login",
                    component: login
                  },
                  {
                    path: "register",
                    component: register
                  }
                ]
              }
            ]
          });
          var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            router
          });
        </script>
      </body>
    </html>
  • 相关阅读:
    干货分享!用户级爬虫,怎敢封IP
    一篇就够,网站数据提取,数据使用
    scrapy 解决爬虫IP代理池,数据轻松爬。
    使用代理ip的作用是什么?
    爬虫工作怎样选择代理ip
    爬取VIP视频
    python爬虫数据追加至excel中
    使用geany编辑器时python输出中文问题
    在Windows系统中从终端运行Python程序
    Windows 安装 Python 及配置环境变量
  • 原文地址:https://www.cnblogs.com/21-forever/p/11108925.html
Copyright © 2020-2023  润新知