美文网首页
VUE04--{路由}

VUE04--{路由}

作者: MickeyMcneil | 来源:发表于2018-08-13 16:11 被阅读6次

1.路由

    <!-- 1.引入路由文件 -->
    <script src="./lib/vue-router.js"></script>
</head>
<body>
    <div id="app">
        <!-- 7.设置跳转,router-link(渲染成a标签),to属性(渲染成href) -->
        <ul>
            <li><router-link to="/index">首页</router-link></li>
            <li><router-link to="/product">产品</router-link></li>
        </ul>
        <!-- 6.通过router-view挖坑,路径匹配的组件会渲染在坑里 -->
        <router-view></router-view>
    </div>
    <script>
        // 2.准备路由需要的组件
        var index = Vue.component("index", {
            template: `<div>我是首页</div>`
        })
        var product = Vue.component("product", {
            template: `<div>我是商品页</div>`
        })
        // 3.创建路由对象,在里面配置路由规则
        var router = new VueRouter({
            // 4.通过routes配置路由规则,routes(数组),其中放对象,每个对象包含name(路由规则的名称)/path(路径)/component(路径对应的组件)
            routes: [
                {name: 'index', path: '/index', component: index},
                {name: 'product', path: '/product', component: product}
            ]
        })
        var vm = new Vue({
            el: "#app",
            // 5.在vue实例中注入路由,这样整个应用就可以使用路由
            router: router,
        })
    </script>

注意
1.routes、routes、routes,防范拼写错误。

2.监听路由参数

    <div id="app">
        <!-- 设置跳转-->
        <ul>
            <li><router-link to="/index">首页</router-link></li>
            <li><router-link to="/product/233">产品</router-link></li>
            <li><router-link to="/product/244">产品</router-link></li>
            <li><router-link to="/product/255">产品</router-link></li>
        </ul>
        <!-- 挖坑渲染 -->
        <router-view></router-view>
    </div>
    <script>
        // 准备组件
        var index = Vue.component("index", {
            template: `<div>我是首页</div>`
        })
        var product = Vue.component("product", {
            template: `
                <div>
                    <div>我是商品页,商品编号是{{$route.params.id}}</div>
                    <p>{{allProduct}}</p>
                </div>
            `,
            data () {
                return {
                    allProduct: "",
                }
            },
            mounted () {
                // 2.在js中获取路由参数,通过this.$route.params.参数名
                console.log(this.$route.params.id);
                console.log(this.$route);
            },
            watch: {
                // 3.to表示你要去的路由对象,from表示你从哪个路由对象来
                "$route" (to, from) {
                    console.log(to);
                    console.log(from);
                    if (to.params.id === '233') {
                        this.allProduct = "233对应的商品";
                    } else if (to.params.id === '244') {
                        this.allProduct = "244对应的商品";
                    } else {
                        this.allProduct = "255对应的商品";
                    }
                }
            }
        })
        // 创建路由对象
        var router = new VueRouter({
            // 配置路由规则
            routes: [
                {name: 'index', path: '/index', component: index},
                // 1.路由加参数的方法 :参数名
                {name: 'product', path: '/product/:id', component: product}
            ]
        })
        var vm = new Vue({
            el: "#app",
            // 实例注入
            router: router,
        })
    </script>

3.嵌套路由、编程式导航

    <div id="app">
        <!-- 设置跳转-->
        <div>
            <router-link to="/product">产品</router-link>
        </div>
        <!-- 挖坑渲染 -->
        <router-view></router-view>
    </div>
    <script>
        // 2.准备子路由组件
        var toys = Vue.component("toys", {
            template: `<div>我是玩具</div>`
        })
        var product = Vue.component("product", {
            // 3.给子路由挖坑
            template: `
                <div>
                    <div>我是商品页</div>
                    <button @click="jumpTo">查看</button>
                    <router-view></router-view>
                </div>
            `,
            methods: {
                jumpTo() {
                    // 4.使用子路由
                    this.$router.push({ name: "toys" });
                    console.log(this.$router);
                }
            },
        })
        // 创建路由对象
        var router = new VueRouter({
            // 配置路由规则
            routes: [
                {
                    name: 'product', path: '/product/', component: product,
                    // 1.定义子路由
                    children: [
                        { name: 'toys', path: '/toys', component: toys }
                    ]
                }
            ]
        })
        var vm = new Vue({
            el: "#app",
            // 实例注入
            router: router,
        })
    </script>

4.路由重定向

    <div id="app">
        <!-- 设置跳转-->
        <div>
            <router-link to="/product">产品</router-link>
        </div>
        <!-- 挖坑渲染 -->
        <router-view></router-view>
    </div>
    <script>
        var product = Vue.component("product", {
            template: `
                <div>
                   我是商品页
                </div>
            `,
        })
        // 创建路由对象
        var router = new VueRouter({
            // 配置路由规则
            routes: [
                {name: 'product', path: '/product/', component: product},
                // 1.路由重定向
                {name: 'default', path: '*', redirect: '/product'},
            ]
        })
        var vm = new Vue({
            el: "#app",
            // 实例注入
            router: router,
        })
    </script>

相关文章

  • VUE04--{路由}

    1.路由 注意1.routes、routes、routes,防范拼写错误。 2.监听路由参数 3.嵌套路由、编程式...

  • thinkphp5学习笔记(三)路由配置

    URL请求的执行流程 路由模式 路由注册 路由规则 路由地址 路由参数 变量规则 路由分组 别名路由 路由绑定

  • larevel 路由索引

    基本路由:路由重定向、视图路由路由参数:必选、可选、正则表达式命名路由路由组:中间件、命名空间、子域名路由、路由前...

  • laravel路由

    2 路由格式 3 路由参数 4 .路由别名 5 .路由群组

  • Vue3: 前端路由的概念和原理

    1、什么是路由 路由(英文:router)就是对应关系。路由分为两大类:① 后端路由② 前端路由 2、后端路由 后...

  • 组件化2.路由框架的设计

    路由框架原理 路由框架是为了实现组件之间的通信 路由框架维护了一个分组的路由表路由表中存放了路由地址和路由信息路由...

  • vue中的路由

    vue中4中路由包含: 1、动态路由2、嵌套路由3、编程式路由4、命名式路由 1、动态路由 2、嵌套路由 3、编程...

  • React-Router知识点

    路由的分类 页面路由 hash 路由 h5路由 react路由 react-router-dom 路由方式 h5路...

  • 路由策略

    路由策略和策略路由 什么是路由策略?路由策略和策略路由有什么区别? 如何配置路由策略? https://blog....

  • Laravel 学习笔记

    路由 文件位置: app/Http/routes.php 基础路由get/post 多请求路由 路由参数 路由别名...

网友评论

      本文标题:VUE04--{路由}

      本文链接:https://www.haomeiwen.com/subject/ikrubftx.html