vue2从基础到高级学习笔记

在实际的工作中,我常使用vue的用法去实现效果,但是你要是问我为什么这样写,它的原理是啥就答不上来了。对vue的认知一直停留在表面,写这篇文章主要是为了理清并弄透彻vue的原理。

学习目标

1 学会一些基本用法的原理
2 弄懂vue核心设计原理
3 掌握vue高级api的用法

一 vue2

1 el与data的写法、v-bind与v-model

1.1 el与data的两种写法

1.1.1 创建Vue中的el的两种方法

1 new Vue({el:‘#root’})
2 通过方法挂载到Vue实例上
const vm = new Vue({}) v.$mount(‘#root’)

1.2 data的两种写法

1、对象式data:{}
2、函数(组件常用)—— 不用箭头函数,箭头函数的this指向的是windows
data:function(){
//this => Vue的实例对象
return:{name:‘Jack’'}
}

1.3 v-bind与v-model的区别

v-bind 单项数据绑定:数据从data流向页面 简写 :value
v-model 双向数据绑定:适用于表单类控件 v-model=’ ’ 或者v-model:value=’ ’

2 MVVM

vue框架在设计过程中也参照了MVVM模型
M(model)模型:对应data中的数据
V(View)视图:模板
VM (ViewModel)视图模型:Vue实例对象
在这里插入图片描述

1、data中的所有属性,最后都相出现在vm身上
2、vm身上的所有属性及vue原型上的所有属性,在vue模版中都可以直接使用

Vm指vue的实例对象所以一般在定义的时候会使用vm去定义 const vm = new Vue({})
vm上的方法模板中可以直接用

3 vue中的数据代理

定义:通过一个对象代理对另一个对象中的属性的操作(读写)
获取obj2.x的值相当于获取obj.x的值,修改obj2.x的值同时修改obj.x的值
在这里插入图片描述

3.1 Object.defineProperty()

主要用法是给对象添加属性值

1 基本用法

Object.defineproperty(obj, prop, desc)
obj, prop, desc => 对象,属性,配置项
配置项中的六个属性

value:‘张三’, // 值
enumerable:true  //是否可枚举 默认false
writable:true  // 是否可修改 默认false
configurable:true  // 是否可删除,默认值false
get:()=>{  return number } // 获取值
set: value => { number = value }  // 设置值
1.1 enumerable

enumerable为false时不可枚举,Object.keys()无法取到属性名
在这里插入图片描述

1.2 writable

writable属性值为false时,不可修改属性内容
在这里插入图片描述

1.3 configurable

configurable属性值为false,delete不可删除属性
在这里插入图片描述

1.4 get与set

value属性与get或set不能同时存在

let number = 18
let person = {name:'TOM',sex:'男',
}Object.defineProperty(person,'age',{get(){console.log('get获取属性值')return number},set(value){console.log('set设置属性值')number = value}
})

get方法属于异步调用,不点击不调用get
在这里插入图片描述
在这里插入图片描述

3.2 数据代理

优点:方便直接操作data中的属性,不用调用属性时在前面使用data了
基本原理

  • 通过Object.defineProperty把data对象中的所有属性添加到vm上
  • 为每一个添加到vm上的属性,都指定一个getter/setter
  • 再getter/setter内部去操作(都/写)data中的属性

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

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

相关文章

环境安装篇 之 安装kubevela

云原生学习路线导航页(持续更新中) 本文是 环境安装 系列文章,介绍 oam规范标准实施项目 kubevela 的安装详细步骤kubevela 官方安装文档:https://kubevela.io/zh/docs/installation/kubernetes/ 1.CentOS 安装kubevela 1.1.前提…

电脑数据安全新篇章:备份文件,守护您的珍贵数据

备份文件,无疑是电脑使用中不可或缺的重要一环。在数字化时代,我们的工作、学习和生活都离不开电脑,而电脑中的数据更是我们宝贵的财富。一旦数据丢失或损坏,可能会带来无法估量的损失。因此,备份文件的重要性不言而喻…

Vue.js+SpringBoot开发高校宿舍调配管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能需求2.1 学生端2.2 宿管2.3 老师端 三、系统展示四、核心代码4.1 查询单条个人习惯4.2 查询我的室友4.3 查询宿舍4.4 查询指定性别全部宿舍4.5 初次分配宿舍 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的…

力扣hot100:4. 寻找两个正序数组的中位数(归并排序/二分/双指针)

目录 一、暴力排序 二、归并排序 三、双指针 四、二分查找 如果本题不说明时间复杂度应该为O(log(mn),那么本题应该是一个简单题,解决的方法有很多。这里先列举出普通方法,再来讨论二分。 一、暴力排序 不管啦,直接纯暴力&…

黑白照片怎么变彩色?3个实用上色方法分享

黑白照片怎么变彩色?这是一个让许多人感到好奇和期待的问题。随着科技的发展,现在已经有多种软件可以将黑白照片转变为彩色,让历史的回忆重新焕发出生机。这些软件利用先进的算法和图像处理技术,能够精准地还原出照片中的色彩&…

【前端】卡片渐变色阴影效果 旋转动画

【前端】卡片渐变色阴影效果 旋转动画 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Breathing…

【G3D笔记】AI生成式3D算法相关环境安装爬坑笔记

【G3D笔记】AI生成式3D算法相关环境安装爬坑笔记) 1、 RayMarching1.1 error C1189: #error: You need C++17 to compile PyTorch1.2 raymarching安装环境版本测试1.3 host_config.h(231): fatal error C1083: 无法打开包括文件: “crtdefs.h”2、Tiny-Cuda-nn2.1 HTTP/2 stre…

mysql体系结构及主要文件

目录 1.mysql体系结构 2.数据库与数据库实例 3.物理存储结构​编辑 4.mysql主要文件 4.1数据库配置文件 4.2错误日志 4.3表结构定义文件 4.4慢查询日志 4.4.1慢查询相关参数 4.4.2慢查询参数默认值 4.4.3my.cnf中设置慢查询参数 4.4.4slow_query_log参数 4.4.…

opengl日记10-opengl使用多个纹理示例

文章目录 环境代码CMakeLists.txt文件内容不变。fragmentShaderSource.fsvertexShaderSource.vsmain.cpp 总结 环境 系统&#xff1a;ubuntu20.04opengl版本&#xff1a;4.6glfw版本&#xff1a;3.3glad版本&#xff1a;4.6cmake版本&#xff1a;3.16.3gcc版本&#xff1a;10.…

设计模式之工厂方法模式解析

工厂方法模式 1&#xff09;问题 简单工厂模式 当需要引入新产品时&#xff0c;由于静态工厂方法通过所传入参数的不同来创建不同的产品&#xff0c;需要修改工厂类的源代码。 2&#xff09;概述 针对不同的产品提供不同的工厂&#xff0c;系统提供一个与产品等级结构对应…

我的保研材料全部损坏了!这个压缩包文件格式未知或数据已经被损坏不可预料的压缩文件末端

求助各位友友&#xff0c;我的保研材料全部没了&#xff01; 之前为了清理D盘&#xff0c;把之前保研期间准备的几个G的材料全部压缩放在了U盘&#xff0c;但是现在却损坏打不开了&#xff0c;之前为了省事也没有添加过“恢复记录”&#xff01;&#xff01;&#xff01; 先声…

阿赵UE学习笔记——20、角色蓝图和动画蓝图

阿赵UE学习笔记目录 大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。这次来看看角色控制动画相关的东西&#xff0c;主要用到了动画蓝图和角色蓝图。 一、动画蓝图 之前分析过&#xff0c;蓝图对于虚幻引擎来说&#xff0c;是存在于各个系统里面的&#xff0c;相当…

智慧公厕:卫生、便捷、安全的新时代厕所变革

在城市快速发展的背景下&#xff0c;公共厕所的建设和管理变得越来越重要。智慧公厕作为厕所变革的一项全新举措&#xff0c;通过建立公共厕所全面感知监测系统&#xff0c;以物联网、互联网、大数据、云计算、自动化控制技术为支撑&#xff0c;实现对公共厕所的智能化管理和运…

FPGA学习_时序约束以及VIVADO时序报告

文章目录 前言时序约束的目的一、时序约束种类1、约束主时钟2、约束衍生时钟3、约束虚拟时钟4、input delay5、output delay6、约束异步时钟组7、约束互斥时钟8、假路径约束9、多周期约束 二、VIVADO时序报告三、从时序的角度看为什么寄存器赋值慢一拍 前言 一边学习一边补充当…

容器中的大模型(三)| 利用大语言模型:容器化高效地部署 PDF 解析器实践...

作者&#xff1a;宋文欣&#xff0c;智领云科技联合创始人兼CTO 01 简介 大语言模型&#xff08;LLMs&#xff09;正逐渐成为人工智能领域的一颗璀璨明星&#xff0c;它们的强大之处在于能够理解和生成自然语言&#xff0c;为各种应用提供了无限可能。为了让这些模型更好地服务…

【Hadoop】Hadoop 编译源码

目录 为什么要源码编译Hadoop 编译源码1前期工作准备2jar 包安装2.1安装 Maven2.2安装 ant2.3安装 glibc-headers 和 g2.4安装 make 和 cmake2.5安装 protobuf2.6安装 openssl 库2.7安装 ncurses-devel 库 3编译源码3.1解压源码到 /opt/ 目录3.2 进入到 hadoop 源码主目录 /opt…

AI时代Python金融大数据分析实战:ChatGPT让金融大数据分析插上翅膀

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…

UniTask 异步任务

文章目录 前言一、UniTask是什么&#xff1f;二、使用步骤三、常用的UniTask API和示例1.编写异步方法2.处理异常3.延迟执行4.等待多个UniTask或者一个UniTas完成5.异步加载资源示例6.手动控制UniTask的完成状态7.UniTask.Lazy延迟任务的创建8.后台线程切换Unity主线程9.不要返…

第二证券|热度飙升,出境游人数有望破亿,这些概念股被机构盯上

在免签和航班批量康复的方针利好下&#xff0c;本年出境游商场迎来炽热升温。 清明出境游有望爆火 3月20日&#xff0c;Airbnb爱彼迎在北京举行春季出境游趋势发布会举行。 爱彼迎中国数据显示&#xff0c;本年清明节期间的出境游查找热度已经超出2023年同期的2.5倍&#xf…

计算机网络面经-什么是IPv4和IPv6?

前言 Internet协议&#xff08;IP&#xff09;是为连接到Internet网络的每个设备分配的数字地址。它类似于电话号码&#xff0c;是一种独特的数字组合&#xff0c;允许用户与他人通信。IP地址主要有两个主要功能。首先&#xff0c;有了IP&#xff0c;用户能够在Internet上被识别…