动态组件、插槽、自定义指令、Eslint和prettierrc配置、axios全局挂载

news2024/11/24 19:46:30

动态组件、插槽、自定义指令、Eslint和prettierrc配置、axios全局挂载

  • 动态组件
  • 插槽
    • 体验插槽的基础用法
    • 作用域插槽
  • 自定义指令
  • Eslint和prettierrc
    • 配置prettierrc
  • axios全局挂载

动态组件

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

  1. 如何实现动态组件渲染
    vue 提供了一个内置的 组件,专门用来实现动态组件的渲染。示例代码如下:
<component :is="comName"></component>
<button @click="comName = 'Left'">展示left</button>
<button @click="comName = 'Right'">展示Right</button>
  1. 使用 keep-alive 保持状态
    默认情况下,切换动态组件时无法保持组件的状态。此时可以使用 vue 内置的 组件保持动态组
    件的状态。示例代码如下:
<keep-alive>
        <component :is="comName"></component>
 </keep-alive>
  1. keep-alive 对应的生命周期函数
    当组件被缓存时,会自动触发组件的 deactivated 生命周期函数。
    当组件被激活时,会自动触发组件的 activated 生命周期函数。
  2. keep-alive 的 include 属性
    排除项:exclude=" ",指定那些不缓存,它和include是二选一的
    include 属性用来指定:只有名称匹配的组件会被缓存。多个组件名之间使用英文的逗号分隔:
<keep-alive include="Left,Right">
        <component :is="comName"></component>
</keep-alive>

插槽

插槽(Slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。
可以把插槽认为是组件封装期间,为用户预留的内容的占位符。

体验插槽的基础用法

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

    这是MyCom1组件的第一个p标签

    用户自定义的内容

  2. 没有预留插槽的内容会被丢弃
    如果在封装组件时没有预留任何 插槽,则用户提供的任何自定义内容都会被丢弃。示例代码如下:
  3. 后备内容
    封装组件时,可以为预留的 插槽提供后备内容(默认内容)。如果组件的使用者没有为插槽提供任何内容,则后备内容会生效。示例代码如下:
  4. 具名插槽
    如果在封装组件时需要预留多个插槽节点,则需要为每个 插槽指定具体的 name 名称。这种带有具体名称的插槽叫做“具名插槽”。示例代码如下:

声明插槽的位置
vue官方规定每一个插槽有一个name名称

v-slot:的简写的形式是#

  <Left>
    <template v-slot:defalut>//用户指定内容
      <p>这是在Left组件的内容区域,声明的p标签</p>
    </template>
  </Left>
  1. 为具名插槽提供内容
    在向具名插槽提供内容的时候,我们可以在一个 元素上使用 v-slot 指令,并以 v-slot 的参数的
    形式提供其名称。示例代码如下:
  2. 具名插槽的简写形式
    跟 v-on 和 v-bind 一样,v-slot 也有缩写,即把参数之前的所有内容 (v-slot:) 替换为字符 #。例如 v-slot:header可以被重写为 #header:

作用域插槽

  1. 在封装组件的过程中,可以为预留的 插槽绑定 props 数据,这种带有 props 数据的 叫做“作用域插槽”。示例代码如下:
  2. 使用作用域插槽
    可以使用 v-slot: 的形式,接收作用域插槽对外提供的数据。示例代码如下:
  3. 解构插槽 Prop
    作用域插槽对外提供的数据对象,可以使用解构赋值简化数据的接收过程。示例代码如下:

自定义指令

vue 中的自定义指令分为两类,分别是:
⚫ 私有自定义指令
在每个 vue 组件中,可以在 directives 节点下声明私有自定义指令。示例代码如下:

使用自定义指令
在使用自定义指令时,需要加上 v- 前缀。示例代码如下:

为自定义指令动态绑定参数值
在 template 结构中使用自定义指令时,可以通过等号(=)的方式,为当前指令动态绑定参数值:
通过 binding 获取指令的参数值
在声明自定义指令时,可以通过形参中的第二个参数,来接收指令的参数值:

update 函数
bind 函数只调用 1 次:当指令第一次绑定到元素时调用,当 DOM 更新时 bind 函数不会被触发。 update 函数会在每次 DOM 更新时被调用。示例代码如下:

<h1 v-color="color">App 根组件</h1>
 <button @click="color = 'green'">改变字体颜色</button>
    data() {
    return {
      color: 'blue'
    }
  },
  directives: {
    color: {
      bind(el, binding) {
        el.style.color = binding.value
      },
      update(el, binding) {
        el.style.color = binding.value
      }
    }
  }

函数简写
如果 insert 和update 函数中的逻辑完全相同,则对象格式的自定义指令可以简写成函数格式:

color() {
	el.style.color = 'green'
}

⚫ 全局自定义指令
全局共享的自定义指令需要通过“Vue.directive()”进行声明,示例代码如下:
vue.directive(‘color’, function(el, binding)) {
el.style.color = binding.value
}

① 能够掌握 keep-alive 元素的基本使用
标签、include 属性
② 能够掌握插槽的基本用
标签、具名插槽、作用域插槽、后备内容
③ 能够知道如何自定义指令
私有自定义指令 directives: { }
全局自定义指令 Vue.directive()

Eslint和prettierrc

了解eslint 基本的语法规范
请添加图片描述

配置prettierrc

创建.prettierrc文件
我们按下面的格式创建一个 .prettierrc 的文件,注意有点格式 C:\Users\XXX.prettierrc
在 .prettierrc文件里面添加下面的内容:

{
"semi": false,
"singleQuote": true,
"bracketSpacing": true
}

配置settings.json
然后在settings.json中的添加如下配置,是添加哦,:

//XXX替换成自己电脑的路径
"prettier.configPath": "C:\\Users\\XXX\\.prettierrc",
// 安装Prettier配置
"eslint.alwaysShowStatus": true,
"prettier.trailingComma": "none",
"prettier.semi": false,
// 每行文字个数超出此限制将会被迫换行
"prettier.printWidth": 300,
// 使用单引号替换双引号
"prettier.singleQuote": true,
"prettier.arrowParens": "avoid",
// 设置 .vue 文件中,HTML代码的格式化插件
"vetur.format.defaultFormatter.html": "js-beautify-html",
"vetur.ignoreProjectWarning": true,
"vetur.format.defaultFormatterOptions": {
    "prettier": {
        "trailingComma": "none",
        "singleQuote": true,
        "semi": false,
        "arrowParens": "avoid",
        "printWidth": 300
    },
    "js-beautify-html": {
        "wrap_attributes": false
    },
 },

在这里插入图片描述
在这里插入图片描述

axios全局挂载

//全局配置axios的请求根路径
axios.defaults.baseURL = '请求根路径'//有利于以后的维护
把axios挂载到vue.prototype上,供每个vue组件的实例直接调用
Vue.prototype.$http(或者换为axios) = axios
//就在每个vue组件中要发起请求,直接调用this.$http.xxx

但是把axios挂载到vue原型上有缺点,:不利于api接口的复原!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526368.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio 2022 CMake+MinGW+GDB 调试目标程序

前段时间笔者在使用MinGW编译了QtCreator后&#xff0c;想要进行调试。最开始使用VSCode进行调试&#xff0c;可是可以调试&#xff0c;但是发现调试过程中反应比较慢&#xff0c;毕竟QtCreator整个源代码工程还是非常大的&#xff0c;VSCode是由JS语言编写&#xff0c;执行效率…

Golang每日一练(leetDay0065) 位1的个数、词频统计

目录 191. 位1的个数 Nnumber of 1-bits &#x1f31f; 192. 统计词频 Word Frequency &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 191. 位1的个数 Nnum…

Java面试知识点(全)-JVM面试知识点一

[Java面试知识点(全) 导航&#xff1a; https://nanxiang.blog.csdn.net/article/details/130640392 注&#xff1a;随时更新 SQL优化 r m y s q l q u e r y ( " S E L E C T u s e r n a m e F R O M u s e r W H E R E s i g n u p d a t e > ′ r mysql_query(…

RK3568平台开发系列讲解(网络篇)图解linux ping

🚀返回专栏总目录 文章目录 一、SOCK_RAW套接字实现的ping二、ping命令发送端内核实现三、ping命令接收端内核实现沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 ping 命令采用 ICMP 协议,是一个用户空间程序,它打开一个 SOCK_RAW 套接字或者ICMP套接字发送ICMP_…

Chrome启动参数常用参数

Chrome常用参数请参考下表。 序号 参数 说明 1 --allow-outdated-plugins 不停用过期的插件。 2 --allow-running-insecure-content 默认情况下&#xff0c;https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。 3 …

Python爬虫入门教程,BeautifulSoup基本使用及实践

Python爬虫入门教程&#xff0c;BeautifulSoup基本使用及实践 爬虫&#xff0c;是学习Python的一个有用的分支&#xff0c;互联网时代&#xff0c;信息浩瀚如海&#xff0c;如果能够便捷的获取有用的信息&#xff0c;我们便有可能领先一步&#xff0c;而爬虫正是这样的一个工具…

大数据之PySpark的RDD创建和分区

文章目录 前言一、RDD创建二、RDD分区数总结 前言 #博学谷IT学习技术支持# 上篇文章对PySpark的RDD做了简单的介绍&#xff0c;以及总结了RDD的特性&#xff0c;该篇文章主要介绍RDD的创建方式&#xff0c;PySpark的RDD创建方式主要有两种&#xff0c;一种是在程序中直接创建&…

11 dubbo源码学习_dubbo协议通信

dubbo在通信上也支持非常多的网络协议,而dubbo协议属于dubbo框架自研,整体协议也比较有代表性,采用定长协议头+变长协议休的形式; 1. dubbo协议格式 Magic - Magic High & Magic Low (16 bits)标识协议版本号,Dubbo 协议:0xdabbReq/Res (1 bit)标识是请求或响应。请…

「OceanBase 4.1 体验」|OCP Express

文章目录 一、简介二、特性介绍2.1 数据库管理2.2 数据库可观测性 一、简介 OCP Express 是一个基于 Web 的 OceanBase 4.x 轻量化管理工具&#xff0c;作为 OceanBase 数据库的工具组件&#xff0c;它集成在 OceanBase 数据库集群中&#xff0c;支持数据库集群关键性能指标查看…

MyBatis第一章 搭建MyBatis的运行环境

这里写自定义目录标题 一 创建Maven工程1 打包方式设置为jar2 引入依赖进去 二 创建MyBatis的核心配置文件1 配置核心文件2 创建mapper接口3 创建mabatis的映射文件4 测试文件的写法5 需要代码可以访问gitee仓库去看看6 log4j的日志功能 三 先改方法&#xff0c;后改映射文件1 …

Qt开发笔记(Qt5.9.9下载安装环境搭建win10)

#1 Qt下载网站&#xff08;国内、国外镜像&#xff09; #2 Qt5.9.9安装选项 #3 配置系统环境变量 #4 创建测试项目 #1 Qt下载网站&#xff08;国内、国外镜像&#xff09; 官方下载地址&#xff08;慢&#xff09;&#xff1a;http://download.qt.io/ 国内镜像网站 这里给大家…

私有jar包发布到maven中央仓库

一、注册Jira Sonatype JIRAhttps://issues.sonatype.org/secure/Dashboard.jspa 二、新建issue 提交后&#xff0c;等待5-10分钟&#xff0c;会收到中央机器人的评论&#xff0c;如下&#xff1a; 在这里&#xff0c;我没有自己的域名&#xff0c;此时&#xff1a; 1、机器人…

网络编程 lesson2 TCP基础编程

目录 sockt介绍 socket类型 socket所在位置 端口号&#xff08;重点&#xff09; 端口号作用 端口号范围 字节序&#xff08;面试常见&#xff09; 大端序 小端序 验证当前主机字节序 字节序转换和IP转换函数接口&#xff08;常用&#xff09; TCP编程 函数接口 …

[230517] TPO71 | 2022年托福阅读真题第5/36篇 | Minoan Palaces | 14:51~16:00+22:00~23:20

7102 Minoan Palaces 目录 7102 Minoan Palaces 正文 题目 Paragraph 1 问题 1 Paragraph 2 问题 2 Paragraph 3 问题 3 4 Paragraph 4 问题 5 6 Paragraph 5 问题 7 8 Paragraph 2-问题9 全篇-问题10 正确率&#xff1a;7/10 正文 Paragraph 1 The…

JavaScript实现输入指定行数,输出三角形的代码

以下为实现输入指定行数&#xff0c;输出三角形的程序代码和运行截图 目录 前言 一、实现输入指定行数&#xff0c;输出三角形 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找&#xff1b;…

HCIP周日ISIS

ISIS&#xff1a;中间系统到中间系统 ES&#xff1a;终端系统 ES-IS&#xff1a;终端系统到中间系统 ISIS是一种链路状态协议&#xff0c;使用SPF算法 早期的ISIS是基于CLNP&#xff08;无连接网络协议&#xff09;而开发的&#xff0c;为了继续追逐TCP/IP的发展&#xff0…

关于getchar的用法及实例解析

一、getchar()函数是什么&#xff1f; getchar()函数是获取一个字符。说到这里就有人问了&#xff0c;为什么他的返回类型是int&#xff1f; 因为实际上EOFend of file&#xff08;-1&#xff09;&#xff0c;EOF实际上就等于-1。当你返回失败的时候返回的是-1&#xff0c;所以…

计算机网络(四上)——网络层!!!重中之重

先来个整章的大框架&#xff0c;看起来也没有多少东西&#xff08;bushi&#xff09;。 这篇文章&#xff0c;就先写 一、网络层的功能 互联网在网络层的设计思路是&#xff0c;向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务 1.1.异构网络互联 1.网络互联是…

Springboot +Flowable,流程表单应用之动态表单

一.简介 整体上来说&#xff0c;我们可以将Flowable 的表单分为三种不同的类型&#xff1a; 动态表单 这种表单定义方式我们可以配置表单中每一个字段的可读性、可写性、是否必填等信息&#xff0c;不过不能定义完整的表单页面。外置表单 外置表单我们只需要定义一下表单的 k…

kafka 从入门到精通

kafka 从入门到精通 安装 zookeeper模式 创建软件目录 mkdir /opt/soft cd /opt/soft下载 wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz解压 tar -zxvf kafka_2.13-3.4.0.tgz 修改目录名称 mv kafka_2.13-3.4.0 kafka配置环境变量 vim /etc/pr…