1. Vue的生命周期

    - 创建和销毁的时候可以做一些我们自己的事情

    - beforeCreated    - created    - beforeMount    - mounted    - beforeUpdate    - updated    - activated    - deactivated    - beforeDestroy    - destroyed

    1.1 知识点回顾

        1.1.1  beforeCreated  在实例创建之前除标签外,所有的vue实例需要的数据,事件都不存在        1.1.2  created  实例被我创建之后,data和事件已经被解析到,el还没有解析到        1.1.3  beforeMount  开始找标签,数据还没被渲染,事件也没被监听        1.1.4  mounted  开始渲染数据和监听事件        1.1.5  beforeUpdate 数据已经被修改在虚拟DOM,但是还没渲染到页面上        1.1.6  updated  开始使用Diff算法,将虚拟DOM中的要修改数据应用到页面上,真实DOM中的数据也被修改了        1.1.7  beforeDestroy 所有的数据都存在        1.1.8  destroyed 所有的数据都存在(在虚拟DOM中)        1.1.9  <keep-alive></keep-alive> Vue提供的用来缓存消除的标签                    - activated和deactivated取代了beforeDestroy和destroyed的执行

2. Vue的路由系统

    2.1 VueRouter的实现原理        - 通过监听a的锚点值,来动态的显示页面内容

    2.2 VueRouter的安装使用

        2.2.1 第一步:
 1       Vue.use(VueRouter)

        2.2.2 第二步:创建router对象和每个url对应的组件
 1       let Home = {
 2                 template:``,
 3             };
 4
 5             let Login = {
 6                 template:``,
 7             };
 8
 9             let router = new VueRouter({
10                 routes:[
11                     {
12                         name:'home',
13                         path:'/',
14                         components:Home',
15                     },
16                     {
17                         name:'login',
18                         path:'/login',
19                         components:Login,
20                     },
21                 ]
22             });

        2.2.3 第三步:注册router对象到根实例中
1       new Vue({
2                 el:'#app',
3                 template:`<App/>`,
4                 components:{
5                     App,
6                 }
7                 router:router,
8             });

        2.2.4 第四步:
1       let App = {
2                 template:`
3                     <router-link :to='{ name: 'home' }'>首页</router-link>
4                     <router-link :to='{ name: 'login' }'>登录</router-link>
5
6                     <router-view></router-view>
7                 `
8             }

    2.3 VueRouter之命名路由        同上    2.4 VueRouter之路由参数        - user_change/1/        - user_detail/?user_id=1
 1     let Home = {
 2             template:`
 3                 <h1>欢迎</h1>
 4             `
 5         };
 6
 7         let UserDetail = {
 8             template:`
 9                 <h2>用户详情</h2>
10             `,
11         };
12
13         let UserChange = {
14             template:`
15                 <h3>修改用户信息</h3>
16             `,
17         };
18
19         let App = {
20             template:`
21                 <div>
22                     <router-link :to="{ name: 'home' }">首页</router-link>
23                     <router-link :to="{ name: 'user_detail', query: { user_id: 1 } }">用户详情</router-link>
24                     <router-link :to="{ name: 'user_change', params: { user_id: 1 } }">修改用户信息</router-link>
25                     <router-view></router-view>
26                 </div>
27             `
28         };
29
30         let router = new VueRouter({
31             routes:[
32                 {
33                     'name':'home',
34                     'path':'/',
35                     'component':Home,
36                 },
37                 {
38                     'name':'user_detail',
39                     'path':'/user_detail',
40                     'component':UserDetail,
41                 },
42                 {
43                     'name':'user_change',
44                     'path':'/user_change/:user_id',
45                     'component':UserChange,
46                 },
47             ]
48         });

    2.5 VueRouter之路由参数的实现原理
1         this.$router.params
2         this.$router.query

    2.6 VueRouter之子路由
 1      let Home = {
 2           template: `
 3               <div>
 4                   <h1>欢迎</h1>
 5               </div>
 6               `
 7           };
 8
 9         let Phone = {
10             template: `
11                 <div>
12                     <h2>手机品牌</h2>
13                     <router-link :to="{name: 'huawei'}" append>华为</router-link>
14                     <router-link :to="{name: 'oneplus'}" append>一加</router-link>
15
16                     <router-view></router-view>
17                 </div>
18                 `,
19         };
20         let HuaWei = {
21             template: `
22                     <div>
23                         <h3>华为手机</h3>
24                     </div>
25                 `,
26         };
27         let OnePlus = {
28             template: `
29                     <div>
30                         <h3>一加手机</h3>
31                     </div>
32                 `,
33
34         let App = {
35             template: `
36                 <div>
37                     <router-link :to="{ name: 'home' }">首页</router-link>
38                     <router-link :to="{ name: 'phone'}">手机品牌</router-link>
39
40                     <router-view></router-view>
41                 </div>
42                 `,
43         };
44
45         let router = new VueRouter({
46         routes: [
47             {
48                 'name': 'home',
49                 'path': '/',
50                 'component': Home,
51             },
52             {
53                 'name': 'phone',
54                 'path': '/phone',
55                 'component': Phone,
56                 'children': [
57                     {
58                         'name':'huawei',
59                         'path': 'huawei',
60                         'component': HuaWei,
61                     },
62                     {
63                         'name':'oneplus',
64                         'path': 'oneplus',
65                         'component': OnePlus,
66                     },
67                 ],
68
69             },
70         ]
71     });

    2.7 VueRouter之子路由重定向
 1     let router = new VueRouter({
 2             routes: [
 3                 {
 4                     name: 'home',
 5                     path: '/',
 6                     component: Home,
 7                 },
 8                 {
 9                     name: 'login',
10                     path: '/login',
11                     component: Login
12                 },
13                 {
14                     name: 'pay',
15                     path: '/pay',
16                     redirect: '/login',
17                     component: Pay,
18                 },
19             ]
20         });

    2.8 VueRouter之子路由的钩子函数
 1     let router = new VueRouter({
 2             routes: [
 3                 {
 4                     name: 'home',
 5                     path: '/',
 6                     component: Home,
 7                 },
 8                 {
 9                     name: 'login',
10                     path: '/login',
11                     component: Login
12                 },
13                 {
14                     name: 'pay',
15                     path: '/pay',
16                     meta: { required_login: true },
17                     component: Pay,
18                 },
19             ]
20         });
21
22         // 通过router对象的beforeEach(function(to, from, next))
23         router.beforeEach(function (to, from, next) {
24            console.log("to: ", to);
25            console.log("from: ", from);
26            console.log("next: ", next);
27            if ( to.meta.required_login ) {
28                next('/login');
29            } else {
30                next();
31            }
32         });

    2.9 VueRouter之子路由的去 # 号
 1      let router = new VueRouter({
 2             mode:'history',
 3             routes: [
 4                 {
 5                     name: 'home',
 6                     path: '/',
 7                     component: Home,
 8                 },
 9                 {
10                     name: 'login',
11                     path: '/login',
12                     component: Login
13                 },
14                 {
15                     name: 'pay',
16                     path: '/pay',
17                     component: Pay,
18                 },
19             ]
20         });

转载于:https://www.cnblogs.com/xjmlove/p/10268118.html

vue---day03相关推荐

  1. Vue.js(day03)

    Vue.js(day03) 上面为语雀链接,因为笔记在语雀中写的,所以在这儿有些功能实现不了,所以请移步链接. Vue.js:

  2. vue尚品汇商城项目-day03【vue插件-19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件)】

    文章目录 19.mockjs模拟数据(开发Home首页当中的ListContainer组件与Floor组件) 本人其他相关文章链接 19.mockjs模拟数据(开发Home首页当中的ListConta ...

  3. day03 - vue基础

    day03 - Vue基础 能够说出Vue的概念和作用 能够使用@vue/cli脚手架工程化开发 能够熟练Vue指令 一.Vue基本概念 思考 问题1: 原生js – 代码复杂开发效率慢? - 效率慢 ...

  4. Vue.js-Day08【项目实战(附带 完整项目源码)-day03:订单确认页面、美团支付页面、flex弹性盒子布局】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 实战项目源码[链接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA   提 ...

  5. Vue制作静态页面--Day03

    希望仿制出游戏PHigros的页面,没有任何功能,只是联系vue语法用 期末考试直接摆烂,能过就行好吧 一.成果展示 当然只是做出样子了,很多地方和自己想的还不一样 二.布局 整体采用flex布局加p ...

  6. Vue.js实训【基础理论(5天)+项目实战(5天)】博客汇总表【详细笔记】

    目   录 前言 基础理论(5天) 基础理论-Day01 基础理论-Day02 基础理论-Day03 基础理论-Day04 基础理论-Day05 项目实战 项目实战-Day01 项目实战-Day02 ...

  7. Vue.js-Day03-AM【超级详细:Node.js环境安装、安装淘宝镜像(Win、Mac)、安装Vue脚手架、初始化Vue项目-命令解释(Vscode、命令行窗口)、目录介绍、Vue文件介绍】

    Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 目   录 1.Node.js-环境安装 1.1.Node.js-详细安装步骤 2.vue-cli脚手架安装 2.1.安装 ...

  8. 前端自检梳理——Vue.js项目实战开发

    01. Vue基础语法 1)总结 2)总结 3)组件化开发 4) 02. Vue路由 目标 总结 03. Vue前端工程化 目标 总结 04. Vue电商项目实战 Day01目标 Day01总结 Da ...

  9. vue生命周期和vue-resource

    day03 文章目录 day03 一.本章任务 二.本章目标 三.知识点 1.什么是生命周期 2.vue生命周期钩子函数 3.vue-resource的使用 4.axious的使用 5.Vue中的动画 ...

  10. 【javaWeb微服务架构项目——乐优商城day03】——(搭建后台管理前端,Vuetify框架,使用域名访问本地项目,实现商品分类查询,cors解决跨域,品牌的查询)

    乐优商城day03 0.学习目标 1.搭建后台管理前端 1.1.导入已有资源 1.2.安装依赖 1.3.运行一下看看 1.4.目录结构 1.5.调用关系 2.Vuetify框架 2.1.为什么要学习U ...

最新文章

  1. php 学习笔记 数组1
  2. shell把字符串中的字母去掉,只保留数字
  3. 7-7 硬币找钱问题 (10 分)(思路+详解+double类型数据的处理)Come baby!!!!!!!!!!!!!!!!!!!!
  4. Mysql 学习笔记2
  5. netmiko可以连接的设备有哪些_气体报警器可以联动哪些设备
  6. JMETER 用户自定义的变量
  7. python定义一个circle类、根据圆的半径_定义一个“圆”类Circle,该圆类的数据成员包括:圆心点位置及圆的半径...
  8. 一文详解对称密钥加密
  9. 基于Otsu算法的图像分割
  10. ALSA架构应用程序aplay及amixer调用关系(应用层到内核驱动)
  11. creo视图管理器使用方法_5.3 视图管理-样式、截面
  12. java7723魂斗罗2_魂斗罗2013-丛林之谜
  13. 新型材料集成墙面,到底“新”在哪里?
  14. 02、Verilog例化说明
  15. 宇视摄像机/硬盘录像机等设备接入到国标GB28181协议视频平台EasyGBS的注意事项
  16. 字符串统计不同类型字符的个数
  17. HSV颜色空间和RGB颜色空间相互转换C语言实现
  18. SQL Server 使用数据库发送邮件(sp_send_dbmail)
  19. 苹果 iOS 15 正式发布
  20. 警告!来历不明的疫情邮件或许是黑客陷阱

热门文章

  1. 新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)
  2. 全国计算机等级考试题库二级C操作题100套(第55套)
  3. 2021年广西高考成绩查询方法,2021年广西高考成绩查询网站查分网址:https://www.gxeea.cn/...
  4. 线程池和线程详细教程
  5. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
  6. spring中的IOC和AOP
  7. docker为什么比虚拟机快
  8. (2021年)IT技术分享社区个人文章汇总(电脑技巧篇)
  9. 后端技术:Java编程中忽略这些细节,Bug肯定少不了
  10. 电脑技巧:C盘爆满该如何清理,实用的清理方案,小白必备