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对应的组件
       let Home = {
template:``,
}; let Login = {
template:``,
}; let router = new VueRouter({
routes:[
{
name:'home',
path:'/',
components:Home',
},
{
name:'login',
path:'/login',
components:Login,
},
]
});
        2.2.3 第三步:注册router对象到根实例中
       new Vue({
el:'#app',
template:`<App/>`,
components:{
App,
}
router:router,
});
        2.2.4 第四步:
       let App = {
template:`
<router-link :to='{ name: 'home' }'>首页</router-link>
<router-link :to='{ name: 'login' }'>登录</router-link> <router-view></router-view>
`
}
    2.3 VueRouter之命名路由
同上
2.4 VueRouter之路由参数
- user_change/1/
- user_detail/?user_id=1
     let Home = {
template:`
<h1>欢迎</h1>
`
}; let UserDetail = {
template:`
<h2>用户详情</h2>
`,
}; let UserChange = {
template:`
<h3>修改用户信息</h3>
`,
}; let App = {
template:`
<div>
<router-link :to="{ name: 'home' }">首页</router-link>
<router-link :to="{ name: 'user_detail', query: { user_id: 1 } }">用户详情</router-link>
<router-link :to="{ name: 'user_change', params: { user_id: 1 } }">修改用户信息</router-link>
<router-view></router-view>
</div>
`
}; let router = new VueRouter({
routes:[
{
'name':'home',
'path':'/',
'component':Home,
},
{
'name':'user_detail',
'path':'/user_detail',
'component':UserDetail,
},
{
'name':'user_change',
'path':'/user_change/:user_id',
'component':UserChange,
},
]
});
    2.5 VueRouter之路由参数的实现原理
         this.$router.params
this.$router.query
    2.6 VueRouter之子路由
      let Home = {
  template: `
  <div>
  <h1>欢迎</h1>
  </div>
  `
  }; let Phone = {
template: `
<div>
<h2>手机品牌</h2>
<router-link :to="{name: 'huawei'}" append>华为</router-link>
<router-link :to="{name: 'oneplus'}" append>一加</router-link> <router-view></router-view>
</div>
`,
};
let HuaWei = {
template: `
<div>
<h3>华为手机</h3>
</div>
`,
};
let OnePlus = {
template: `
<div>
<h3>一加手机</h3>
</div>
`, let App = {
template: `
<div>
<router-link :to="{ name: 'home' }">首页</router-link>
<router-link :to="{ name: 'phone'}">手机品牌</router-link> <router-view></router-view>
</div>
`,
}; let router = new VueRouter({
routes: [
{
'name': 'home',
'path': '/',
'component': Home,
},
{
'name': 'phone',
'path': '/phone',
'component': Phone,
'children': [
{
'name':'huawei',
'path': 'huawei',
'component': HuaWei,
},
{
'name':'oneplus',
'path': 'oneplus',
'component': OnePlus,
},
], },
]
});
    2.7 VueRouter之子路由重定向
     let router = new VueRouter({
routes: [
{
name: 'home',
path: '/',
component: Home,
},
{
name: 'login',
path: '/login',
component: Login
},
{
name: 'pay',
path: '/pay',
redirect: '/login',
component: Pay,
},
]
});
    2.8 VueRouter之子路由的钩子函数
     let router = new VueRouter({
routes: [
{
name: 'home',
path: '/',
component: Home,
},
{
name: 'login',
path: '/login',
component: Login
},
{
name: 'pay',
path: '/pay',
meta: { required_login: true },
component: Pay,
},
]
}); // 通过router对象的beforeEach(function(to, from, next))
router.beforeEach(function (to, from, next) {
console.log("to: ", to);
console.log("from: ", from);
console.log("next: ", next);
if ( to.meta.required_login ) {
next('/login');
} else {
next();
}
});
    2.9 VueRouter之子路由的去 # 号
      let router = new VueRouter({
mode:'history',
routes: [
{
name: 'home',
path: '/',
component: Home,
},
{
name: 'login',
path: '/login',
component: Login
},
{
name: 'pay',
path: '/pay',
component: Pay,
},
]
});
												

vue---day03的更多相关文章

  1. vue学习-day03(动画,组件)

    目录: 1.品牌列表-从数据库获取列表    2.品牌列表-完成添加功能    3.品牌列表-完成删除功能    4.品牌列表-全局配置数据接口的根域名    5.品牌列表-全局配置emulateJS ...

  2. Vue 基础 day03

    定义Vue 组件 什么是组件:组件的出现,就是为了拆分 Vue 实例的代码量,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用对应的组件: 组件化和模块化的不同: ...

  3. vue大型电商项目尚品汇(后台篇)day03

    今天把平台属性的管理基本完成了,后台管理做到现在基本也开始熟悉,确实就是对ElementUI的一个熟练程度. 一.平台属性管理 1.动态展示数据 先把接口弄好,应该在第三级标题选择后进行发请求 静态页 ...

  4. vue补充

    一.安装vue-cli脚手架 1.淘宝镜像下载 用淘宝的国内服务器来向国外的服务器请求,我们向淘宝请求,而不是由我们直接向国外的服务器请求,会大大提升请求速度,使用时,将所有的npm命令换成cnpm即 ...

  5. vue_shop(基于vue电商管理后台网站)

    vue_shop 目录 vue_shop day01 实现登录功能 项目预开发处理 Login.vue完整代码: 处理步骤: 添加element-ui的表单组件 添加第三方字体: 添加表单验证 导入a ...

  6. vue再学习

    day01 Vue 是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架 vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合 使用Vu ...

  7. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  8. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  9. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  10. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

随机推荐

  1. Linux添加alias简化命令

    一.简介 linux alias 是命令的一种别称,输入 alias 可以看到像下面这样的结果: alias vi="vim" 也即,输入vi后,被自动定向到vim这个命令了.al ...

  2. 环境变量PATH超长问题[转]

    症状回放: 最近安装一个Delphi的控件,结果,在安装之后启动Delphi时出现了找不到相关文件的错误.一开始以为是Delphi内的Library路径没有添加,查看,一切正常.再次启动Delphi, ...

  3. FPGA----只读存储器(ROM)

            ROM是一种重要的时序逻辑存储电路,它的逻辑功能是在地址信号的选择下,从指定存储单元中读取相应的数据.R0M只能进行数据的读取,而不能修改或写人新的数据,本节将以16×8的ROM为例, ...

  4. 配置xtrabackup备份mysql数据库

    下载地址:https://www.percona.com/downloads/XtraBackup/LATEST/ 为了方便起见本次安装使用yum源安装方式 1    安装yum源:yum insta ...

  5. 二、Python安装扩展库

    第一步:推荐easy_install工具 下载地址:https://pypi.python.org/pypi/setuptools 下载"ez_setup.py"文件; 通过运行c ...

  6. angular2 里父子组件传值的坑

    1.如果传的是基本类型的值,子组件里改变该值,父组件无变化 2.如果传的是对象,子组件里改变对象里的变量,父组件会变化 3.如果传的是函数,this不会继续指向父组件对象了,如果需要this指向父组件 ...

  7. 用C++实现HTTP服务器 - Windows平台(开放源代码)

    有时间了看一下 https://blog.csdn.net/querw/article/details/6593328 libevent也实现了一下http服务

  8. hiho 第155周 任务分配

    最小路径覆盖会超时: 贪心思路: 按照开始时间排序,然后根据结束时间,维护一个以结束时间的单调递增的队列,每次与最快结束的任务进行比较即可: /* #include <cstdio> #i ...

  9. 问题 A: B 继承 圆到圆柱体

    题目描述 定义了Circle圆形类,在此基础上派生出Cylinder圆柱体类. Circle圆形类定义如下: class Circle { public: Circle(double r):radiu ...

  10. Python-Url编码和解码

    一.为什么要进行Url编码 url带参数的请求格式为(举例): http://www.baidu.com/s?k1=v1&k2=v2 当请求数据为字典data = {k1:v1, k2:v2} ...