Vue学习笔记与常用操作(二)

简介: Vue学习笔记与常用操作(二)

路由

vue-router 的理解

在2022年2月,默认版本都是,vue-router4,只能在vue3中使用

npm i  vue-router  //默认
npm i  vue-router@3  //降级

vue 的一个插件库,专门用来实现 SPA 应用

对 SPA 应用的理解

  1. 单页 Web 应用(single page web application,SPA)。
  2. 整个应用只有一个完整的页面
  3. 点击页面中的导航链接不会刷新页面,只会做页面的局部更新。
  4. 数据需要通过 ajax 请求获取。

路由的理解

1. 什么是路由?

1. 一个路由就是一组映射关系(key - value)

2. key 为路径, value 可能是 function 或 component

2. 路由分类

  1. 后端路由:

1) 理解:value 是 function, 用于处理客户端提交的请求。

2) 工作过程:服务器接收到一个请求时, 根据请求路径找到匹配的函数

来处理请求, 返回响应数据。

  1. 前端路由:

1) 理解:value 是 component,用于展示页面内容。

2) 工作过程:当浏览器的路径改变时, 对应的组件就会显示。

总结: 编写使用路由的 2 步

  1. 定义路由组件 ,暴露并注册路由
//该文件,专门用于创建整个应用的路由器
import VueRouter from "vue-router";
//引入组件
import MyAbout from "@/components/MyAbout"
import MyHome from "@/components/MyHome";
//创建并暴露一个路由器
export default new VueRouter({
      routes:[
          {
              path:'/about',
              component:MyAbout
          },
          {
              path:'/home',
              component:MyHome
          },
      ]
})
  1. 使用路由
<!--原始html中我们使用的是a标签实现页面的跳转-->
   <!--
     <a class="list-group-item active" href="./about.html">About</a>
     <a class="list-group-item" href="./home.html">Home</a>
    -->                
=======================================================================
<!--Vue借助router-link标签实现页面的跳转-->
<router-link class="list-group-item" active-class="active" to="/about">About</router-link>
<router-link class="list-group-item" active-class="active" to="/home">Home</router-link>
                </div>
....
 <!--指定组件的呈现位置-->
      <router-view></router-view>
....

active-class:实现切换(可以配置高亮样式)

router-view:指定展示位置

总结:注意事项

  1. 一般组件通常放在components文件中,路由组件放在pages文件中
  2. 通过切换,隐藏的路由组件和一般组件不一样,使用完后,就被vue销毁,如果再使用,就重新挂载
  3. 每个组件都有自己的$route属性,里面存储着自己的路由信息
  4. 整个应用只有一个router(路由器),可以通过组件的$router获取到。

多级路由(嵌套路由)

1.路由配置规则,使用chlidren配置项

routes:[
    {
        path:'/about',
        component:MyAbout
    },
    {
        path:'/home',
        component:MyHome,
        children:[  //通过chliaren配置子路由
            {
            path:'homeMessage',  //此处一定不要带 '/'
            component:HomeMessage,
        },
            {
                path:'homeNews',  //此处一定不要带 '/'
                component:HomeNews,
            }
        ],
    },
]

2.跳转路径(要写完整路径):

<router-link to="/home/homeMessage">Message</router-link>

路由的query参数

1.传递参数

<!--路由跳转,携带query参数,to的字符串写法-->
 <router-link :to="`/home/homeMessage/homeMessageDetail?id=${m.id}&tit=${m.tit}`">{{m.tit}}</router-link>&nbsp;&nbsp;
<!--路由跳转,携带query参数,to的对象写法-->
<router-link
         :to="{
              path:'/home/homeMessage/homeMessageDetail',
              query:{id:m.id,tit:m.tit
              }
          }">{{m.tit}}</router-link>

2.接收参数

$route.query.id
$route.query.tit

name属性简化路由

我们可以通过在routes中,写name属性,去简化路由

routes:[
    {
        name:'xxxx',  //命名
        path:'/about',
        component:MyAbout
    },
    {
        name:'xxxx',
        path:'/home',
        component:MyHome,
        children:[  //通过chliaren配置子路由
            {
            name:'xxxx',
            path:'homeMessage',  //此处一定不要带 '/'
            component:HomeMessage,
        },
            {
                name:'xxxx',
                path:'homeNews',  //此处一定不要带 '/'
                component:HomeNews,
            }
        ],
    },
]

2.简化跳转

<!--原本的写法-->
 <router-link :to="`/home/homeMessage/homeMessageDetail?id=${m.id}&tit=${m.tit}`">{{m.tit}}</router-link>&nbsp;&nbsp;
<!--路由跳转,携带query参数,to的对象写法-->
<router-link
         :to="{
             name:'xxxx', <!--这里写命名-->
              query:{id:m.id,tit:m.tit
              }
          }">{{m.tit}}</router-link>

路由的params参数

1.params

routes:[
          {
              path:'/about',
              component:MyAbout
          },
          {
              path:'/home',
              component:MyHome,
              children:[
                  {
                  path:'homeMessage',
                  component:HomeMessage,
                      children:[
                          {
                              name:'tang',
                              path:'homeMessageDetail/:id/:tit', //占位符声明接收params参数
                              component:HomeMessageDetail,
                          },
                      ]
              },

2.传递参数

<!--路由跳转,携带query参数,to的对象写法-->
                <router-link
                        :to="{
                       name:'tang',
                       params:{id:m.id,tit:m.tit}
                       }">{{m.tit}}</router-link>

特别注意:路由器携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!

3.接收参数

$route.params.id
$route.params.tit

编程式路由导航

1.作用:不依赖于<router-link>实现路由跳转,让路由跳转更灵活

2.具体编码

//$router的2个API
               this.$router.push({
                    name:'tang',
                    params:{id:m.id,tit:m.tit}
                })
            },
               this.$router.replace({
                    name:'tang',
                    params:{id:m.id,tit:m.tit}
                })
            }

Vue UI:组件库

7.1移动端常用UI组件库

  1. Vant https://youzan.github.io/vant
  2. Cube Ul https://didi.github.io/cube-ui<;
  3. Mint Ul http://mint-ui.github.io/#!/zh-cn

7.2PC端常用Ul组件库

  1. Element Ul https://element.eleme.cn
  2. IView Ul https://www.iviewui.com
相关文章
|
22天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
24天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
26天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
31 1
vue学习第一章
|
22天前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
21 1
|
22天前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
27 1
|
22天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
22天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1059 0
|
26天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
24 1
vue学习第三章
|
26天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章