day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints

 系列文章目录

day1学习vue2笔记 vue指令

day2 学习vue2 笔记 过滤器 侦听器 计算属性 axios

day3 vue2 学习笔记 vue组件

day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints

day6 vue 学习笔记 vue-router路由

文章目录

前言

一、axios

1、安装 axios

2、导入 axios

3、get

4、Post

二、动态组件

1、什么是动态组件

2、如何实现动态组件渲染

3、使用  keep-alive  保持原状态

4、 keep-alive 对应的生命周期函数

5、. keep-alive 的 include 属性

三、插槽

1、说明是插槽

​编辑

2、体验插槽的基础用法

2.1、没有预留插槽的内容会被丢弃

 2.2、后备内容 

 3、具名插槽

 3.1 为具名插槽提供内容

4、作用域

 4.1 使用作用域插槽

 4.2 解构插槽  prop

四、自定义指令

1. 什么是自定义指令

2. 自定义指令的分类

3. 私有自定义指令

4. 使用自定义指令

5. 为自定义指令动态绑定参数值

6. 通过 binding 获取指令的参数值

7. update 函数

8. 函数简写

9. 全局自定义指令

五、main.js

六、ESLint

1、ESLint 作用

2、在webstorm 中更改代码空格数量

3、Visual Studio Code 修改格式化空格数量

4、vue 项目创建  引入 ESLint 

总结

1、axios的简单使用

1.1 安装:

 1.2 导入

1.3 GET

1.4 POSt

2、动态组件

3、插槽

4、自定义指令


前言

vue  学习笔记


一、axios

1、安装 axios

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第1张图片

1、如果调用某一个方法的返回值是 promise 实例,则前面可以添加  await 

2、await  只能用在被  async  “修饰” 的  方法中

axios

npm install axios

2、导入 axios

  // 导入 axios
  import axios from 'axios';

3、get

 async initCartList(){
        // 调用 axios 的 get 方法,请求列表
        const {data:res} = await axios.get('https://www.escook.cn/api/cart')
        console.log(res)
      },
 async  fun01(){
    await axios({
	    method:'GET',
	    url:"http://www.liulongbin.top:3006/api/getbooks",
	    // GET 参数: URL 中的查询参数
	    params:{
			    id:1
	    },
	    // POST 参数
	    data:{},
	    }).then(function(result){
	    	console.log(result)
    })
},

// ==================  axios.get =============
async fun_03() {
	const {data : res} = await axios.get('http://www.liulongbin.top:3006/api/getbooks')
	console.log(res)
},
// 传参
async fun_04() {
	const {data : res} = await axios.get('http://www.liulongbin.top:3006/api/getbooks',{
				params:{
					id:1
				}
		})
	console.log(res)
},

4、Post

 async  fun01(){
   axios({
	    method:'POST',
	    url:"http://www.liulongbin.top:3006/api/post",
	    // POST 参数
	    data:{
	       name:'zs',
	       age:'20'
	    },
	    }).then(function(result){
	         console.log(result)
    })
},

async fun_05() {
	const {data : res} = await axios.post('http://www.liulongbin.top:3006/api/post',
	{
		name:'zs',
		gender:'女'
	},
	)
	console.log(res)
},


二、动态组件

1、什么是动态组件

动态组件指的是  动态切换组件的显示与隐藏。

2、如何实现动态组件渲染

vue  提供了一个内置的  组件,专门用来实现动态组件的渲染。

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第2张图片

注意:

  • 当切换时 组件会被销毁,和重新创建。 如果要保存就用  keep-alive
  • 如果在说明组件的时候,没有为组件指定  name 名称,则组件的名称就是注册时候的组件名称,当提供了组件的名称那么现实的就是 索取的名称

取名的地方在每一个Vue组件的script中进行:

  export default {
    name:'MyLeft',
}

注册名称:注册名称的主要应用场景是:以标签的显示,把注册好的组件,渲染和使用到页面结构之中

组件名称:组件声明的时候的“name”名称主要应用场景:结合 标签实现组件缓存功能;以及在调试工具中看到的名称。

3、使用  keep-alive  保持原状态

默认情况下,切换动态组件时无法保持组件的状态。此时可以使用 vue 内置的 组件保持动态组,件的状态。示例代码如下:

keep-alive  可以把内部的组件进行缓存,而不是销毁;
 

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第3张图片

4、 keep-alive 对应的生命周期函数

当组件被缓存时,会自动触发组件的 deactivated 生命周期函数。
当组件被激活时,会自动触发组件的 activated 生命周期函数。

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第4张图片

 activated() {
      console.log("组件被激活了")
    },
    deactivated() {
      console.log("组件被缓存了")
    }

当组件第一次创建时,机会执行 created  生命手气,也会执行  activated 生命周期;

当组件被激活的时候,只会触发activated  生命周期,不在触发  created 。因为组件没有被重写创建;

5、. keep-alive 的 include 属性

include 属性用来指定:只有名称匹配的组件会被缓存。多个组件名之间使用 英文的逗号分隔

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第5张图片

 <keep-alive include="Left,Right">
        <component :is="comName">component>
keep-alive>
exclude 属性与  include 属性相反;(排除)

这两个属性不能同时使用只能用一个;

    <keep-alive exclude="Left,Right">
        <component :is="comName">component>
      keep-alive>


三、插槽

1、说明是插槽

插槽Slot)是 vue 为 组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第6张图片

 可以把插槽认为是组件封装期间,为用户预留的内容的占位符。

2、体验插槽的基础用法

在封装组件时,可以通过 元素定义插槽,从而为用户预留内容占位符。示例代码如下:

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第7张图片

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第8张图片

vue 官方规定每一个  slot 插槽,都要有一个  name  名称。

如果省略了  slot 的  name 属性,则默认有一个名称叫  defauit;

默认情况下,在使用组件的时候,提供的内容会被填充到名称为  default  的插槽之中。

2.1、没有预留插槽的内容会被丢弃

如果在封装组件时没有预留任何 插槽,则用户提供的任何自定义内容都会被丢弃

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第9张图片

 day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第10张图片

 2.2、后备内容 

封装组件时,可以为预留的 插槽提供后备内容(默认内容)。如果组件的使用者没有为插槽提供任何内容,则后备内容会生效

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第11张图片

 3、具名插槽

如果在封装组件时需要预留多个插槽节点,则需要为每个 插槽指定具体的 name 名称。这种带有具体名称的插槽叫做“具名插槽”。

day5 vue 笔记 axios 动态组件 插槽 自定义指令 ESLints_第12张图片

 3.1 为具名插槽提供内容

在向具名插槽提供内容的时候,我们可以在一个