vue学习笔记(二) 路由学习

vue-router与vue.js深度集成,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。一般的页面应用,是用一些超链接来实现页面切换和跳转的,比如说a标签,在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。
路由中有三个基本的概念:

  1. route,它是一条路由。Home按钮=>home内容,这是一条route,about
    按钮=>about内容,这是另一条路由。
  2. router是一组路由,把上面的每一条路由组合起来,形成一个数组。
    [ {home 按钮 =>home内容 }, { about按钮 => about 内容} ]
    router 是一个机制,相当于一个管理者,它来管理路由。因为routes 只是定义了一组路由,它放在哪里是静止的,当真正来了请求,怎么办? 就是当用户点击home 按钮的时候,怎么办?这时router 就起作用了,它到routes 中去查找,去找到对应的 home 内容,所以页面中就显示了 home 内容。
  3. 路由在项目中的基本定义为(文件router/index.js):
    在这里插入图片描述
    再通过来实现组件之间的跳转。
    1.1 声明式路由
    在页面中通常使用这个标签来实现页面的跳转,它属于声明式路由,相当于a标签。
    如何带值传递?
    在这里插入图片描述
    用法:
    在这里插入图片描述
    1.2 编程式路由
    在页面中可以使用这个标签来实现页面的跳转,还可以通过router的实例化方法来实现页面的跳转。
    1.2.1 router.push
    平时使用的实际上是调用router.push。
    具体的语法:
    router.push(location, onComplete?, onAbort?)
    在具体使用该方法时,在Vue实例内部,可以通过router来访问路由的实例,项目中常用到的有(c,d为传参方式):
    (a)this.router.push(‘/xxxx’) – 某一个路径
    (b)this.router.push ({name : ‘xxxx’}) – 跳转到某一个页面
    ©this.router.push ({name : ‘xxxx’, query: xxx})
    (d)this.router.push ({name : ‘xxxx’, param: {userId: ‘xxxx’}}) --由于动态路由也是传递params的,所以在 this.router.push() 方法中 path不能和params一起使用,否则params将无效。需要用name来指定页面。
    3与4的区别在于在页面接收参数的方式不同:
    this.route.query.xxx
    this.route.param.xxx
    使用这个方法,它会向栈里添加一条历史记录,所以在选择回退时,它会回退到历史页面
    在项目中常见的场景是从一个单页面回退到上一层页面。
    在这里插入图片描述
    1.2.2 router.replace
    语法:router.replace(location, onComplete?, onAbort?)
    这个跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是替换掉当前的 history 记录。参数的传递与router.push相同。
    (1) 路由按需加载:
    为了不影响页面加载,如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就很高效了
    我们一般定义路由:
    在这里插入图片描述
    按需加载的写法:
    在这里插入图片描述
    1.2.3 router-view
    在App.vue中定义 router-view和 router-link,App.vue中定义router-view是必不可少的。
    在这里插入图片描述
    项目中使用的场景:
    router-view 也可看做一个组件,结合 keep-alive 来,将所有匹配到的视图组件进行缓存处理,避免重复加载。
    在这里插入图片描述
    1.2.4 路由钩子
    路由钩子主要是在路由发生变化时进行一些特殊处理,总的来说,提供了三大类钩子函数:
    (1) 全局钩子
    (2) 某个路由独享的钩子
    (3) 组件内钩子
    三种路由钩子中都涉及到了三个参数:
    (1) to :Route:即将要进入的目标 路由对象
    (2) from :Route 当前导航正要离开的 路由
    (3) next : Function 一定要调用该方法来 resolve 这个钩子。
    next(): 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的)。
    next(false): 中断当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。
    next(’/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址。当前的导航被中断,然后进行一个新的导航。
    next(error): 如果传入 next 的参数是一个 Error 实例,则导航会被终止且该错误会被传递给 router.onError() 注册过的回调。
    参考资料:https://router.vuejs.org/zh-cn/advanced/navigation-guards.html
    (1)全局钩子:
    router. beforeEnter 与router.afterEach
    全局钩子在main.js里面调用,比如以下的场景,一个应用页面返回上一页面
    在这里插入图片描述
    (2)某个路由独享的钩子
    在这里插入图片描述
    这个没有用过,以后用上了再补上
    (3)组件内钩子
    组件内的钩子可以在路由组件中直接定义一下路由导航守卫。
    a)beforeRouteEnter
    b)beforeRouteUpdate (2.2 新增)
    c)beforeRouteLeave
    在项目中主要用到的是beforeRouteLeave,它的使用场景我用到最多的为:
    导航离开该组件的对应路由时,比如说从某页面进入该编辑页,当放弃编辑时,给出提示“信息未保存,是否编辑”。
    这里用到了状态管理store与vux,暂时忽略,现只看用法。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值