Vue.JS基础- 插件、模块化

vue补充

获取DOM元素

  • 救命稻草, document.querySelector

  • 1: 在template中标识元素 ref="xxxx"

  • 2: 在要获取的时候, this.$refs.xxxx 获取元素

    • 创建组件,装载DOM,用户点击按钮

  • ref在DOM上获取的是原生DOM对象

  • ref在组件上获取的是组件对象

    • $el 是拿其DOM

    • 这个对象就相当于我们平时玩的this,也可以直接调用函数

 

路由


路由原理

  • 传统开发方式 url改变后 立刻发起请求,响应整个页面,渲染整个页面

  • SPA 锚点值改变后 不会发起请求,发起ajax请求,局部改变页面数据

    • 页面不跳转 用户体验更好

SPA

  • single page application(单页应用程序)

  • 前端路由

    • 锚点值监视

    • ajax获取动态数据

    • 核心点是锚点值

  • 前端框架 Vue/angular/react都很适合开发单页应用

基本使用

  • vue-router

  • 其是vue的核心插件

  • 1:下载 npm i vue-router -S

  • 1.2(重要):安装插件Vue.use(VueRouter);

  • 2:在main.js中引入vue-router对象 import VueRouter form './x.js';

  • 3:创建路由对象 var router = new VueRouter();

  • 4:配置路由规则 router.addRoutes([路由对象]);

    • 路由对象{path:'锚点值',component:要(填坑)显示的组件}

  • 5:将配置好的路由对象交给Vue

    • 在options中传递-> key叫做 router

  • 6:留坑(使用组件)

router-link

  • to

  • 帮助我们生成a标签的href

  • 锚点值代码维护不方便,如果需要改变锚点值名称

    • 则需要改变 [使用次数 + 1(配置规则)] 个地方的代码

命名路由

  • 1:给路由对象一个名称 { name:'home',path:'/home',component:Home}

  • 2:在router-link的to属性中描述这个规则

    • 通过名称找路由对象,获取其path,生成自己的href

  • 大大降低维护成本,锚点值改变只用在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对象;

        }

        })

参数router-link,

vue-router中的对象

  • $route 路由信息对象,只读对象

  • $router 路由操作对象,只写对象

嵌套路由

  • 市面上所谓的用单页应用框架开发多页应用

    • 嵌套路由

  • 案例

    • 进入我的主页显示:电影、歌曲

  • 代码思想

    • 1:router-view的细分

      • router-view第一层中,包含一个router-view

    • 2:每一个坑挖好了,要对应单独的组件

  • 使用须知: 1:router-view包含router-view 2:路由children路由

知识点介绍

  • 路由meta元数据 -> meta是对于路由规则是否需要验证权限的配置

    • 路由对象中 和name属性同级 { meta:{ isChecked:true } }

  • 路由钩子 -> 权限控制的函数执行时期

    • 每次路由匹配后, 渲染组件到router-view之前

    • router.beforeEach(function(to,from,next) { } )

练习

  • 1: 使用koa 编写一个服务器...

    • a. /login的请求.. ctx.body = { msg:'ok'} 前端用jq发送ajax请求

  • 2: 客户端接收响应以后.如果是ok. localStroage中保存该值

  • 3: 在全局路由守卫中,区分/login 不验证(meta), /show 要验证, 验证条件就是从localStorage中获取

编程导航

  • 1: 跳到指定的锚点,并显示页面 this.$router.push({ name:'xxx',query:{id:1},params:{name:'abc'} });

  • 2: 配置规则 {name:'xxx',path:'/xxx/:name'}

  • 3: 根据历史记录.前进或后退

    • this.$router.go(-1|1);

    • 1代表进一步,-1是退一步

axios

基本使用

Axios.method('url',[,..data],options)
.then(function(res){  })
.catch(function(err) { } )

合并请求

  • this.$axios.all([请求1,请求2])
    .then(  this.$axios.spread(function(res1,res2){  
             
             })
    )

拦截器

  • 单请求配置options: axios.post(url,data,options);

  • 全局配置defaults: this.$axios.defaults

  • config : 请求拦截器中的参数

  • response.config 响应拦截器中的参数

  • options

    • baseURL 基础URL路径

    • params 查询字符串(对象)

    • transformRequest 转换请求体数据

    • transformResponse 转换响应体数据

    • headers 头信息

    • data 请求体数据

    • timeout 请求超时,请求多久以后没有响应算是超时(毫秒)

模块化

ES6模块

  • 导入和导出只能存在顶级作用域

  • require引入是代码执行的时候才加载

  • import 和export 都是提前加载 ,加载在代码执行之前

箭头函数和function

  • 一方面箭头函数是种简写形式

  • 应用场景: 由于箭头函数本身没有this和arguments,通常用在事件类的回调函数上,让其向上级function绑定this,而非事件对象

  • 箭头函数不可以作为构造函数

ES6函数简写

  • 用在对象的属性中

    fn3() { //干掉了:function,用在对象的属性中
    ​
                    console.log(this);
    ​
            },
    ​
    

 

你可能感兴趣的:(Vue,vue,ajax)