vue笔记

2023-05-16

ES6相关补充

var 没有块级作用域
let 有块级作用域
ES5之前因为if和for都没有块级作用域的概念,只能借助function的作用域来解决应用外面变量的问题
let有if和for的块级作用域
变量作用域:变量在什么范围内是可用。

属性的增强写法:
在这里插入图片描述
函数的增强写法:在这里插入图片描述

mustache插槽语法只能在内容中使用
在这里插入图片描述
函数在面向对象设计中称为方法。

v-once:只执行一次

v-html:解析HTML指令

在这里插入图片描述

v-pre:不对代码进行任何解析,原封不动的显示出来

在这里插入图片描述
显示:{{message}}

v-cloak:

在这里插入图片描述

v-bind:动态绑定属性

在这里插入图片描述
在这里插入图片描述
v-bind语法糖:只用一个冒号:

在这里插入图片描述
在这里插入图片描述
v-bind数组语法:
在这里插入图片描述

v-bind绑定style
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

v-for=“变量 in 列表”

在这里插入图片描述

计算属性:computed

什么时候执行:初始化时和相关的data数据发生改变时
在这里插入图片描述
计算属性是当属性来使用不用加括号,与方法区分

在这里插入图片描述
在这里插入图片描述
getter:属性的get方法
satter:属性的set方法
在这里插入图片描述

计算属性里的对象里包含方法:
数据双向变化:get()获取,set()监视
在这里插入图片描述
计算属性一般没有set方法,只读属性。
计算属性有缓存,打印多次只需调用一次

绑定事件监听:v-on:click <=> @click

click后也可以直接添加事件语句
在这里插入图片描述

在事件定义时,写方法省略了小括号,但是方法本身是需要一个参数的,这个时候vue会默认将浏览器产生的event事件对象作为参数传入到方法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在调用方法时,手动的获取到浏览器参数的event对象:$event
如果需要同时传入某个参数,同时又需要event时,可通过$event传入事件
在这里插入图片描述
在这里插入图片描述

v-on的修饰符

.stop修饰符:调用event.stopPropagation()阻止事件冒泡

点击div内部的button时阻止div的click事件发生
(点击内部button时div的click事件同时发生就称为事件冒泡)
在这里插入图片描述
.prevent修饰符:调用event.preventDefault()阻止默认事件

例如:阻止表单默认提交事件
在这里插入图片描述

监听键盘某个按键
在这里插入图片描述
在这里插入图片描述
.native监听自定义组件事件
在这里插入图片描述
.once:只触发一次回调
在这里插入图片描述

v-if、v-else-if、v-else

在这里插入图片描述
v-if控制数据是否渲染
在这里插入图片描述
在这里插入图片描述
v-if和v-else联合使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
阻止某些数据从虚拟dom复用到真实dom:
添加不同的key值
在这里插入图片描述

v-show

控制是否显示
v-if是控制组件是否渲染,v-show仅控制是否显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

v-for

在这里插入图片描述
遍历数组:
在这里插入图片描述
遍历对象:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
遍历对象,可以继续遍历对象里的值
在这里插入图片描述

响应式数组方法:
push():尾部添加元素(可一次添加多个)
pop():尾部删除一个元素
shift():删除数组第一个元素
unshift():在数组前面添加元素(可多个)
splice():删除元素、插入元素、替换元素
第一个参数是起始点
在这里插入图片描述
sort():数组排序
reverse():数组元素反转
…num:可变参数
【注意】
通过索引值修改数组中的元素并不是响应式的

vue内部的set方法可以做到响应式修改
在这里插入图片描述
案例:控制点击list修改class样式
在这里插入图片描述
在这里插入图片描述

vue中的过滤器filters

在这里插入图片描述
在这里插入图片描述
for(let i in this.books)
这里i自动取到索引值
在这里插入图片描述
for(let item of this.books)
直接取到数组里的每一项item
在这里插入图片描述
使用reduce高阶函数:
在这里插入图片描述

v-model

表单绑定v-model

实现数据的双向绑定
在这里插入图片描述
效果等同:
在这里插入图片描述
效果等同:
在这里插入图片描述
在这里插入图片描述
v-model其实是一个语法糖,它的背后本质上是包含两个操作:
1.v-bind绑定一个value属性
2.v-on指令给当前元素绑定input事件

v-model结合radio

表单提交时,name(key)相同互斥,只能选择一个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此时使用v-model可以不再使用name,使用v-model即可达到互斥效果:
在这里插入图片描述

v-model结合checkbox

勾选checkbox后isAgree自动变为true:(布尔类型)
在这里插入图片描述
v-model和多个CheckBox,选中自动添加到数组(数组)
在这里插入图片描述
单选框对应一个布尔值,多选框对应一个数组:
在这里插入图片描述

在这里插入图片描述

v-model:select

单选
在这里插入图片描述

多选:
在这里插入图片描述

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

值绑定

数组动态绑定
{label-for的作用是可以在后面添加文字,点击文字的同时也会勾选选框}
在这里插入图片描述

修饰符

.lazy懒加载

默认情况下, v-model默认是在input事件中同步输入框的数据的。
也就是说,一旦有数据发生改变对应的data中的数据就会自动发生改变。
.lazy修饰符可以让数据在失去焦点或者回车时步会更新。
在这里插入图片描述

number

默认情况下v-model在给变量赋值时都是string类型
使用.number会变成number类型

默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。
但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。
number修饰符可以让在输入框中输入的内容自动转成数字类型。

在这里插入图片描述

trim

去空格
如果输入的内容首尾有很多空格,通常我们希望将其去除
trim修饰符可以过滤内容左右两边的空格
在这里插入图片描述

组件化

在这里插入图片描述

组件存在层级关系:父组件和子组件

在这里插入图片描述

组件的语法糖注册方式

全局组件注册:
在这里插入图片描述
在这里插入图片描述
局部:
在这里插入图片描述

模板分离写法:

在这里插入图片描述

为什么组件data必须是函数

因为:组件不能访问vue实例的数据
组件是一个单独功能模块的封装:
这个模块有属于自己的HTML模板,也应该有属性自己的数据data。

组件data是函数,组件实例对象数据不会相互影响,因为data函数每次会返回一个新的对象。

父子组件的通信

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

父组件–>子组件

props

props的值有两种方式:
方式一: 字符串数组,数组中的字符串就是传递时的名称。
方式二:对象,对象可以设置传递时的类型,也可以设置默认值等。

//父传子:props
	//子组件:
const cpn = {
	template:'#cpn',
	props:{
		1.类型限制 (可以写多个可能的类型,例:cmessage:[String,Number])
		cmovies:Array,
		cmessage:String,

		2.提供一些默认值,以及必传值
		cmessage:{
			type:String,  
			dafault:"",
			required:true
		},
		类型是对象或者数组时,默认值必须是一个函数
		cmovies:{
			type:Array,
			default(){
				return []
			}
		}
		可以给某个属性自定义验证函数
		propA{
			validator: function (value) {
			// 这个值必须匹配下列字符事中的一个
			return ['success', 'warning'. * danger']. indexof(value) 1ee -1
			}
}

		
	}
}

props例传过来的属性也可以自定义类型:

	function Person (firstName, lastName) {
	this.firstName = firstName
	this.lastName = lastName
	}
	Vue.component('blog-post'{
	props: {
		author: Person
	})

PROPS中的驼峰标识:
目前vue版本v-bind不能使用驼峰标识
驼峰标识需要换成用-连接:例如:cInfo->c-info,cMyMessage->c-my-message

子组件–>父组件

自定义事件

this.$emit()
在子组件的方法里添加自定义this.$emit()事件
在这里插入图片描述

在这里插入图片描述
父组件中,通过v-on监听子组件事件。
在这里插入图片描述
在这里插入图片描述

watch

监听属性改变:(可传两个参数,新值和旧值)

在这里插入图片描述

父子组件的访问方式

$children

父组件拿到所有的子组件,形式为数组,不常用

常用$refs

r e f s 是 一 个 对 象 , 可 以 拿 到 子 组 件 所 有 的 数 据 对 象 t h i s . refs是一个对象,可以拿到子组件所有的数据对象 this. refsthis.refs.

子访问父 $parent

可以取到父组件对象,不常用,不建议
访问到上层父组件,不越级访问

访问根组件 $root

直接访问到vue实例(不常用)

*插槽slot

在子组件中,使用特殊的元素就可以为子组件开启一个插槽。
该插槽插入什么内容取决于父组件如何使用。

插槽内也可以定义默认元素
若父组件不指定插槽位置显示内容,则显示默认内容

具名插槽

给插槽添加name,替换时选择相应的插槽位置

<div id="app">
	<cpn><span slot="center">标题</span></cpn>
</div>

<template id="cpn">
	<div>
		<slot name="left"><span>左边</span></slot>
		<slot name="center"><span>左边</span></slot>
		<slot name="right"><span>左边</span></slot>
	</div>
</template>

编译的作用域

父组件模板的所有东西都会在父级作用域内编译,子组件模板的所有东西都会在子级作用域内编译。

作用域插槽

父组件替换插槽的标签,但是内容由子组件来提供。
slot-scope
例如:父组件获取子组件的内容换种方式展示

//父组件
<div id="app">
	<cpn></cpn>
	<cpn>
		<template slot-scope="slot"> //slot-scope="slot"这里的名字随便起,这里的slot会引用子组件的插槽对象
			<span>{{slot.data.join('-')}}</span>
			<span>{{slot.data.join('*')}}</span>//join()函数可以定义在元素之间添加连接符
		</template>
	</cpn>
</div>

//子组件
<template id="cpn">
	<div>
		<slot :data="pLanguages"> //通过data属性传到父组件(这里data属性是自定义的,可以随便起名字),也可以定义多个属性传值
			<ul>
			<li v-for="item in pLanguages">{{item}}</li>
			</ul>
		</slot>
	</div>
</template>

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue笔记 的相关文章

随机推荐

  • Vue中使用element-ui的el-dialog对话框,实现拖拽效果

    效果图 xff1a element ui的el dialog对话框 xff0c 没有拖拽移动的效果 xff0c 需要自定义指令来实现对话框拖拽 1 准备 xff1a 在准备一个vue组件 xff08 点击按钮弹出对话框 xff09 功能 x
  • 前端知识点(六):网页中有大量图片时加载很慢,如何优化?

    1 图片懒加载 在图片未可视区域加一个滚动条事件 xff0c 判断图片位置与浏览器顶端和页面的距离 xff0c 当图片到浏览器顶端的距离 xff0c 小于图片到页面的距离时 xff0c 优先加载 2 图片预加载 将当前展示图片的前一张和后一
  • 请求类型get,delete,post,put 的用法(传参)

    1 get delete传参 注意 xff1a xff08 1 xff09 传参格式 xff1a 96 URL key 61 value amp key2 61 value2 96 xff08 2 xff09 注意使用反引号 xff0c 而
  • 关于前端--RSA加密(对登录密码加密)

    安装 npm install jsencrypt 1 在utils文件中封装一个jsencrypt js文件 密匙对生成链接 xff1a http web chacuo net netrsakeypair import JSEncrypt
  • Vue+Uniapp实现直播功能(推流拉流)

    提示 xff1a 前言 目前有一个项目 需要做一个APP和一个PC端网页 xff0c 主要功能是类似直播 xff0c 经查阅资料 xff0c 可采用uniapp 43 vue 43 推流拉流的技术 xff0c 前端使用uniapp打开摄像头
  • web菜单--自定义样式

    1 文件src styles variables scss 定义变量 sidebar menuText var menuText bfcbd9 menuActiveText var menuActiveText 409EFF subMenu
  • vue3拖拽布局+动态组件+自适应布局

    1 拖拽布局插件 Vue Grid Layout 适用Vue js的栅格布局系统 可拖动和可调整大小栅格布局的Vue组件 https jbaysolutions github io vue grid layout zh 在package j
  • webrtc视频播放器(ZLMRTCClient.js)

    引言 在播放实时视频时 xff0c 视频播放器一般会有延迟 xff0c 此时 xff0c 就可以使用webrtc来拉流 xff0c 延迟在1s或者基本没有延迟 与zlm配套的rtc js客户端 国标 1 开源项目地址 ZLMRTCClien
  • python3字符串格式化

    python 3 字符串格式化 字符串格式化 Python的字符串格式化有两种方式 百分号方式 format方式 百分号的方式相对来说比较老 xff0c 而format方式则是比较先进的方式 xff0c 企图替换古老的方式 xff0c 目前
  • PDU 发送短信1

    使用PDU模式 xff0c 包含UDH头信息分割短信 xff0c 用户数据头UDH 61 00表示长短信拆分 贴一个转来的PDU学习笔记 xff0c 网上收藏的 关于PDU其实并不难 xff0c 至于PDU是什么 xff0c 不管它 xff
  • 在elementUI中格式化信息几种方式

    1 组件自带的格式化方法 2 全局注册过滤器 3 用el switch 这三列的数据需要格式化 lt el table border data 61 34 list 34 gt lt el table column label 61 34
  • 第八届蓝桥杯客观题答案

    解析 2 OC门又叫集电极开路门 5 地线也算信号线 6 RS232 不能调试下载吧 xff1f JATG 4线 xff08 不用VCC xff09 SWJ 5线 SPI 不是下载线 xff0c 通信用的 xff0c 而且也有五根 7 答案
  • Python学习笔记:Pyqt5鼠标键盘事件处理

    import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import class windows QMainWindow def in
  • c++成员函数后面加一个冒号:

    冒号后跟着的是赋值操作 xff0c 这种写法是c 43 43 的特性 比如 xff0c LRUcache int capacity cap capacity 相当于 LRUcache int capacity cap 61 capacity
  • python---布谷鸟搜索算法

    布谷鸟搜索算法 xff08 Cuckoo Search xff0c CS xff09 布谷鸟算法的启发当然来自于布谷鸟 xff0c 因为布谷鸟这种鸟很有意思 xff0c 生出来的孩子自己不养 xff0c 直接被扔到其他鸟的鸟巢中去了 xff
  • THRESH_OTSU mode: > ‘src_type == CV_8UC1 || src_type == CV_16UC1‘ > where > ‘src_type‘ is 6

    问题 xff1a python cv2 报错 xff1a 原因 OTSU算法是由日本学者OTSU于1979年提出的一种对图像进行二值化的高效算法 xff0c 是一种自适应的阈值确定的方法 xff0c 又称大津阈值分割法 xff0c 是最小二
  • 树莓派4B安装ubuntu mate崩溃(卡死)解决办法

    初次安装过程中 不要连WIFI xff01 xff01 xff01 不要接网线 xff01 xff01 xff01 我重装了不下15次所得来的惨痛教训 xff01 xff01 xff01
  • ubuntu20.04配置FrankMocap实现3D人体姿态估计

    一 初始环境配置 1 ubuntu20 04配置显卡驱动 以我的这篇文章为例子 xff0c 显卡RTX2060及以下的都可以使用我的方法快速完成配置 xff0c RTX2060以上的我尚未进行尝试 xff0c 请自行斟酌尝试 联想拯救者R7
  • 使用VNC远程控制树莓派的Ubuntu20.04(arm)

    一 将PC与树莓派连接到同一个局域网内 比如 xff1a 将树莓派和PC连接到同一个wifi中 xff0c 方法一 xff1a 如果是家用wife发射器 xff0c 则可以在浏览器中输入 xff1a http 192 168 0 1 来查询
  • vue笔记

    ES6相关补充 var 没有块级作用域 let 有块级作用域 ES5之前因为if和for都没有块级作用域的概念 xff0c 只能借助function的作用域来解决应用外面变量的问题 let有if和for的块级作用域 变量作用域 xff1a