首页 > 其他分享 >Vue-router 的简单应用

Vue-router 的简单应用

时间:2022-11-17 23:56:04浏览次数:41  
标签:Vue 应用 对象 VueRouter var router 路由

一、基本路由。

1、引入 vue.js。

<script type="text/javascript" src="../vue/vue.js"></script>

2、引入核心的插件 vue-router。

<script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.js"></script>

3、安装插件 Vue.use(VueRouter);  让 vue 使用该 VueRouter 创建。

Vue.use(VueRouter);

4、创建路由对象。 var router = new VueRouter({ });

var router = new VueRouter({ });

5、配置路由规则。

  5.1、直接在路由对象里配置路由规则。 

var router = new VueRouter({
    // 4.配置路由对象
    routes:[
        // 5.路由匹配的规则
        {
            path:'/login',
            component:Login
        },
        {
            path:'/register',
            component:Register
        }
    ]
});    

  5.2、使用路由对象,调用其 addRoutes 函数,并向其中传入路由配置规则。

6、将配置好的路由对象交给 Vue,在 options 传递,key 叫做 router。

// 8.将配置好的路由对象关联到vue实例化对象中
new Vue({
  el:'#app',
  router:router,
  template:`<App />`,
  components:{
    App
  }
});

7、留坑(使用组件)。<router-view></router-view>

<!--路由组件的出口-->
<router-view></router-view>

8、router-link 默认被渲染为 a 标签,to 默认被渲染为 href 属性。

<!--router-link默认会被渲染成a标签,to默认会被渲染成href属性-->
<router-link to = '/login'>登录</router-link>
<router-link to = '/register'>注册</router-link>

代码如下:

    <div id="app"></div>
    <!-- 1.先引入vue.js -->
    <script type="text/javascript" src="../vue/vue.js"></script>
    <!-- 2.引包 引入 核心的插件vue-router -->
    <script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.js"></script>
    <script type="text/javascript">
        // 2.让vue使用该VueRouter创建
        Vue.use(VueRouter);
        //声明组件
        var Login  = {
            template:`<div>我是登录页面</div>`
        };
        var Register  = {
            template:`<div>我是注册页面</div>`
        };
        // 3.创建路由对象
        var router = new VueRouter({
            // 4.配置路由对象
            routes:[
                // 路由匹配的规则
                {
                    path:'/login',
                    component:Login
                },
                {
                    path:'/register',
                    component:Register
                }
            ]
        });
        // 抛出两个全局的组件 router-link  router-view
        var App = {
            template:`
                <div>
                    <!--router-link默认会被渲染成a标签,to默认会被渲染成href属性-->
                    <router-link to = '/login'>登录</router-link>
                    <router-link to = '/register'>注册</router-link>
                    
                    <!--路由组件的出口-->
                    <router-view></router-view>
                </div>
            `
        }
        // Cannot read property 'matched' of undefined
        // 5.将配置好的路由对象关联到vue实例化对象中
        new Vue({
            el:'#app',
            router:router,
            template:`<App />`,
            components:{
                App
            }
        });
    </script>

 

二、命名路由。

1、在创建路由对象时,给路由对象一个名称。{path: '/login', name: 'login', component: Login} 。

var router = new VueRouter({
  // 3.配置路由对象
  routes:[
    // 4.创建路由匹配的规则
    {
      path:'/login',
      name:'login',
      component:Login
    },
    {
      path:'/register',
      name:'register',
      component:Register
    }
  ]
});

2、在 router-link 的 to 属性中 描述这个规则,通过名称找路由对象,获取其 path ,生成自己的 href。

<router-link :to="{name:'login'}">登陆</router-link>

代码如下:

    <div id="app"></div>
    <script type="text/javascript" src="../vue/vue.js"></script>
    <script type="text/javascript" src="./node_modules/vue-router/dist/vue-router.js"></script>
    <script type="text/javascript">
        // 0.安装插件
        Vue.use(VueRouter);
        // 1.声明Login、Register路由组件
        var Login = {
            template:'<div>我是登陆页面</div>'
        }
        var Register = {
            template:'<div>我是注册页面</div>'
        }
        // 2.创建路由对象
        var router = new VueRouter({
            // 3.配置路由对象
            routes:[
                // 4.创建路由匹配的规则
                {
                    path:'/login',
                    name:'login',
                    component:Login
                },
                {
                    path:'/register',
                    name:'register',
                    component:Register
                }
            ]
        });
        // 5.抛出两个全局组件 router-link router-view
        var App = {
            template:`
                <div>
                    <!-- router-link默认会被渲染为a标签,router-view默认会被渲染为herf标签 -->
                    <router-link :to="{name:'login'}">登陆</router-link>
                    <router-link :to="{name:'register'}">注册</router-link> 
                    <!-- 6.路由组件的出口 -->
                    <router-view></router-view>
                <div>
            `
        };
        // 6.将配置好的路由关联到vue实例对象中
        new Vue({
            el:'#app',
            router:router,
            template:` 
                <App/>
            `,
            components:{
                App,
                router
            }
        });
    </script>

 

大大降低了维护成本,锚点值改变只用在main.js中改变path属性即可。

总结:

vue-router 的使用步骤:1、引入。2、安装插件。3、创建路由实例。4、配置路由规则。5、将路由关联到 Vue。6、留坑。

router-link  普通路由   to="/xxx"。

命名路由:1、在路由规则对象中加入 name 属性。

     2、在 router-link 中 :to="{name: 'xxx'}"。

生僻 API 梳理:

  1、Vue.use(插件对象); // 过程中会注册一些全局组件,及给 vm 或者组件对象挂载属性。

  2、给 vm 及组件对象挂载的方式:Object.defineProperty(Vue.prototype,'$router',{  get:function () {    return 自己的router对象; } });

标签:Vue,应用,对象,VueRouter,var,router,路由
From: https://www.cnblogs.com/sfwu/p/16901183.html

相关文章

  • vue后台管理系统"批量删除"书写逻辑
    先上代码: 首先在整体el-table表格中添加@selection-change="SelectTableList"点击事件,这个主要的作用就是当表格被点击时,会调用这个函数;  然后再表格el-table......
  • Nuxt 3.0 稳定版正式发布,基于 Vue 3 的 Web 框架
    Nuxt是使用简便的Web框架,用于构建现代和高性能的Web应用,可以部署在任何运行JavaScript的平台上。Nuxt3.0今天正式发布了稳定版,3.0基于Vue3,为TypeScript......
  • vue 项目源码映射失败问题解决
    目录vue项目源码映射失败问题解决前言解决方案效果参考vue项目源码映射失败问题解决前言不知何时起,项目控制台调试进入源代码变成编译后的文件了,调试起来十分不便,强迫......
  • [Vue warn]: Error in v-on handler: "TypeError: Failed to execute 'readAsDataURL'
    今天在使用Vue进行文件上传的代码编写时,发现报错:[Vuewarn]:Errorinv-onhandler:"TypeError:Failedtoexecute'readAsDataURL'on'FileReader':parameter1is......
  • 在 Vue 中获取 DOM 元素
    一、获取DOM元素。1、在template中标识元素ref="xxx"。2、通过this.$refs.xxx获取元素。3、在组件内通过this.$el可以获取整个组件的DOM。<div><butto......
  • 控制台的应用
    1、创建控制台程序有两种方式一种是直接创建程序方式按照如下图进行创建即可还有一种方式无需创建代码进行,进入vs后在新建项目也能打开下图 2、项目完成后可以进入代......
  • 五个最好的复制/粘贴的Mac App应用
    ​ 如果你刚用Mac,之前是用Windows电脑的,第一个问题就会发现,Mac上的复制/粘贴找不到了。如果你也有同样的问题,或者你在找Mac上有没有好用的剪贴板管理工具,可以在下面的文......
  • 用户画像分析的应用及搭建
    1、什么是用户画像分析我们经常在淘宝网购物,作为淘宝方,他们想知道用户是什么样的,年龄、性别、城市、收入、购物品牌偏好、购物类型、平时的活跃程度等,这样的一个用户描述就......
  • Vue组件之间的通信方式
     父→子子→父 props✖✔查看详情自定义事件 ✖✔ 方式三   ......
  • K8s安装乐维5.0应用部署文档
     乐维产品包具体打包为4个镜像包,分别为:mysql5.7.36.tar、zabbix_server.tar、itops_v1_4_x86_64.tar、bpm0.1.tar,对应的配置文件分别为:data.tar、conf.tar、nginx-v1.3.t......