IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue入门 -> 正文阅读

[JavaScript知识库]Vue入门

1.动态组件

1.1什么是动态组件

动态组件值的是动态切换组件的显示和隐藏

1.2如何实现动态组件

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

<component :is="comName"></component>

1.3动态切换组件的展示与隐藏

<button @click="comName = 'Left'">展示Left</button>
<button @click="comName = 'Right'">展示Right</button>

1.4使用keep-alive保持状态

默认情况下,切换动态组件时无法保持组件的状态,此时可以使用vue内置的<keep-alive>组件保持动态组件的状态

<keep-alive>
	<component :is="comName"></component>
</keep-alive>

inactive组件失活,被缓存

1.5keep-alive对应的声明周期函数

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

deactivated() {
	console.log('组件被缓存了,deactivated')
}

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

activated() {
	console.log('组件被激活了,activated')
}

1.6keep-alive的include属性和exclude属性

include包含需要被缓存的项

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

exclude排除需要被缓存的项

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

2.插槽

2.1什么是插槽

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

<slot></slot>

2.2v-slot指令

<Left>
	<!-- 默认情况下,在使用组件的时候,提供的内容都会被填充到名字为default的插槽之中 -->
    <!-- 1.如果要把内容填写到指定名称的插槽中,需要使用v-slot这个指令 -->
    <!-- 2.v-slot:后面要跟上插槽的名字 -->
	<!-- 3.v-slot:指令不能直接用在元素身上,必须用在template标签上 -->
	<!-- 4.template这个标签,它是一个虚拟的标签,只起到包裹性质的作用,但是,不会被渲染为任何实质性的HTML元素 -->
	<template v-slot:default>
		<p>这是在Left组件的内容区域,声明的p标签</p>
	</template>
</Left>

?2.3v-slot:简写

可以简写成#

<!-- 5.v-slot:指令的简写形式是# -->
<template #default>

2.4插槽的后备内容

封装组件时,可为预留的<slot>插槽提供后备内容,如果组件的使用者没有为插槽提供任何内容,则后备内容会生效

<slot name="default">这是default插槽的默认内容</slot>

2.5具名插槽

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

<!-- 文章的标题 -->
<div class="header-box">
	<slot name="title"></slot>
</div>
<!-- 文章的内容 -->
<div class="content-box">
	<slot name="content"></slot>
</div>
<!-- 文章的作者 -->
<div class="footer-box">
	<slot name="author"></slot>
</div>

2.6作用域插槽

在封装组件的过程中,可以预留的<slot>插槽绑定props数据,这种带有props数据的<slot>叫做"作用域插槽"

<!-- 在封装组件时,为预留的<slot>提供属性对应的值,这种用法,叫做"作用域插槽" -->
<slot name="content" msg="hello vue.js"></slot>

解构赋值

<template #content="{msg,user}">

3.自定义指令

3.1什么是自定义指令

vue官方提供了v-text、v-for、v-model、v-if等常用的指令,初次之外vue还允许开发者自定义指令

3.2自定义指令的分类

vue中的自定义指令分为两种,分别是:

私有自定义属性

全局自定义属性

3.3私有自定义属性

在每个vue组件中,可以在directives节点下声明私有自定义指令

directives:{
    //定义名为color的自定义指令
	color:{
	    //当指令第一次被绑定到元素上的时候,会立即触发bind函数
		//形参中的el表示当前指令所绑定的那个DOM元素
		bind(el){
			console.log('触发了v-color的bind函数')
			el.style.color = 'red'
		}
	}
}

3.4update函数

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

//在DOM更新的时候,会触发update函数
update(el,binding){
	console.log('触发了v-color的update函数')
	el.style.color = binding.value
}

3.5函数简写形式

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

color(el,binding){
	el.style.color = binding.value
}

3.6全局自定义属性

全局共享的自定义指令需要通过"Vue.directive()"进行声明

Vue.directive('color',function(el,binding){
	el.style.color = binding.value
})

4.eslint

可组装的JavaScript和JSX检查工具

4.1rules规则

no-console在发布时候禁用console语句,在开发阶段不禁用

no-debugger在发布时候禁用debugger语句,在开发阶段不禁用

4.2ESLint语法规则

no-multiple-empty-lines禁止出现空行

eol-last要求或禁止文件末尾存在空行

no-trailing-spaces不允许有多余的空格

等,具体语法规则请看官网详情

5.挂载axios

// 全局配置axios的请求根路径
axios.defaults.baseURL = 'http://www.liulongbin.top:3006'
// 把axios挂载到Vue.prototype上,供每个 .vue组件的实例直接调用
Vue.prototype.$http = axios
// 今后在每个 .vue组件中要发起请求,直接调用this.$http.xxx

调用挂载

async postInfo () {
  const { data: res } = await this.$https.post('/api/post', { name: 'zs', age: 20 })
  console.log(res)
}
async getInfo () {
  const { data: res } = await this.$https.get('/api/get')
  console.log(res)
}

缺点:不利于API接口的复用

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:08:26  更:2021-10-06 12:09:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 4:08:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计