vue2从基础到高级学习笔记

news2024/11/27 4:36:59

在实际的工作中,我常使用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.coloradmin.cn/o/1530685.html

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

相关文章

【前端寻宝之路】学习和总结HTML的标签属性

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

【项目管理后台】Vue3+Ts+Sass实战框架搭建一

项目管理后台 建立项目最好是卸载Vetur 新建.env.d.ts文件安装Eslint安装校验忽略文件添加运行脚本 安装prettier新建.prettierrc.json添加规则新建.prettierignore忽略文件 安装配置stylelint新建.stylelintrc.cjs 添加后的运行脚本配置husky配置commitlint配置husky 强制使用…

resize-observer源码解读

resize-observer github 地址:https://github.com/devrelm/resize-observer 本地启动 npm installnpm startnode 18.16.0 (npm 9.5.1) 启动失败报错 node:internal/crypto/hash:71this[kHandle] new _Hash(algorithm, xofLen);^Error: error:0308010C:digital …

spark RDD 创建及相关算子

RDD编程入口 RDD编程入口对象是SparkContext对象,想要调用相关的计算api都需要通过构造出的sparkcontext对象调用 RDD的创建 通过并行化集合创建RDD(本地集合转为分布式),api如下 rdd sc.parrallize(param1, param2)参数1是本…

第112讲:Mycat实践指南:字符串Hash算法分片下的水平分表详解

文章目录 1.字符串Hash算法分片的概念1.1.字符串Hash算法的概念1.2.字符串Hash算法是如何将数据路由到分片节点的 2.使用字符串Hash算法分片对某张表进行水平拆分2.1.在所有的分片节点中创建表结构2.2.配置Mycat实现字符串Hash算法分片的水平分表2.2.1.配置Schema配置文件2.2.2…

边缘检测-Tiny and Efficient Model for the Edge Detection Generalization

源代码: https://github.com/xavysp/TEED 论文地址:https://arxiv.org/pdf/2308.06468.pdf 大多数高级计算机视觉任务依赖于低级图像操作作为其初始过程。边缘检测、图像增强和超分辨率等操作为更高级的图像分析提供了基础。在这项工作中,我们考虑三个…

公众号获取token失败,当日access_token超过1万次处理

问题:如果你当日的 access_token 获取次数已经超过了 1 万次,那么很有可能是由于频繁获取 access_token 而被微信限制了。在这种情况下,你需要等待到下一个自然日或者等待一段时间后再尝试获取 access_token。或者直接去公众号去刷新掉用量。…

JAVA EE (计算机是如何工作的)

学前注意事项 出去面试的时候java岗位不需要懂前端(会少量讲解) 但是我们做项目的时候多少回用到一些前端的东西 1.什么是计算机 1.1前情提要 不仅仅只有电脑是计算机 计算机还不仅仅是电脑手机和平板 路由器 智能洗衣机 刷脸打卡机都可以说是计算…

MySQL中数据库表的监控

MySQL中数据库表的监控 (1)查看数据库中当前打开了哪些表:show OPEN TABLES ,如图6-1-5所示。另外,还可以通过show OPEN TABLES where In_use > 0过滤出当前已经被锁定的表。 查看数据库中表的状态:SHO…

月销12万,卖出6万件,1688跨境热销榜第一是它!

店雷达1688热销商品榜,食品类目下,月度排名第一的热销商品是这款【三只松鼠_多味鹌鹑蛋混合口味 休闲零食小吃卤蛋夜宵熟食】月销售额达到12万,一个月内卖出5万笔,复购率保持在51%。看来我们的这款中国小吃,也收到很多…

linux -- I2C设备驱动 -- MS32006(低压5V多通道电机驱动器)

产品简述 MS32006 是一款多通道电机驱动芯片, 其中包含两路步进电机驱动, 一路直流电机驱动; 每个通道的电流最高电流1.0A; 支持两相四线与四相五线步进电机。芯片采用 I2C 的通信接口控制模式, 兼容 3.3V/5V 的标准工业接口。 MS32006 总共集成了两路步进电机驱动器与一…

数据分析能力模型分析与展示

具体内容: 专业素质 专业素质-01 数据处理 能力定义•能通过各种数据处理工具及数据处理方法,对内外部海量数据进行清洗和运用,提供统一数据标准,为业务分析做好数据支持工作。 L1•掌握一…

【数据结构】数据结构和算法的重要性复杂度详解

主页:醋溜马桶圈-CSDN博客 专栏:数据结构_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.数据结构和算法 1.1什么是数据结构? 1.2 什么是算法? 1.3 数据结构和算法的重要性 1.4 如何学好数据…

线程和进程的区别和联系

一、什么是进程 进程(Process), 是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行 【资源分配和调度】 的一个独立单位。 进程是【程序】的【一次执行】(是计算机中程序的执行过程,而不是计算机中的程序)进程是系统进行【资源分配和…

【MySQL】知识点 + 1

# (1)查询当前日期、当前时间以及到2022年1月1日还有多少天,然后通过mysql命令执行命令。 select curdate() AS 当前日期,curtime() AS 当前时间,datediff(2022-01-01, curdate()) AS 距离2022年1月1日还有天数;# (2)利…

2024年 信息系统管理工程师(中级)

2024年信息系统管理工程师全套视频、历年真题及解析、历年真题视频解析、教材、模拟题、重点笔记等资料 1、2023、2022、2021、2020年全套教程精讲视频。 2、信息系统管理工程师历年真题及解析(综合知识、案例分析)、历年真题视频解析。 3、官方最新信…

【linux线程(三)】生产者消费者模型详解(多版本)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:Linux从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学更多操作系统知识   🔝🔝 Linux线程 1. 前言2. 初识生产…

【数据结构】哈希表与哈希桶

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.概念 2.哈希冲突…

SylixOS工程如何生成map文件

生成.map文件通常是在编译链接阶段由编译器或链接器自动完成的。如果你需要手动生成.map文件,可以通过配置链接器选项来实现。 以bsp工程为例,在内核工程/libsylixos/SylixOS/mktemp/bsp.mk文件中添加-Wl,-Map,output.map选项来生成.map文件。

Java学习笔记:异常处理

Java学习笔记:异常处理 什么是异常异常体系结构:Error、Exception自定义异常 ​ **2024/3/19** 什么是异常 异常体系结构:Error、Exception 自定义异常