vue 基础

vue基础教学(8) 一、 sync的使用 vue2的响应式原理原理:通过数据劫持 defineProperty + 发布订阅者模式,当 vue 实例初始化后 observer 会针对实例中的 data 中的每一个属性进行劫持并通过 defineProperty() 设置值后在 get() 中向发布者添加该属性的订阅者,这里在编译模板时就会初始化每一属性的 watcher,在数据发生更新后调用 set 时会通知发布者 notify 通知对应的订阅者做出数据更新,同时将新的数据根性到视图上显示。 缺陷:只能够监听初始化实例中的 d 阅读详情

一。vue 生命周期:总共10个。初始化只会执行(1 2 3 4)。

  1. beforeCreate:即初始化状态之前,在这里执行 initState
  2. created:初始化状态后(initState 执行完成)。
  3. beforeMount:虚拟dom生成之前,在该周期内执行 render 函数,生成虚拟dom和挂载dom
  4. mounted:此时dom元素已加载完成,可以进行dom元素操作。(调用顺序先执行子元素的mount再执行父元素)
  5. beforeUpdate:更新之前
  6. updateed:更新后
  7. beforeDestroy:销毁前
  8. destroy:销毁后
  9. activated 和 deactivated: 用于 keep-alive 组件的激活与失活。

二。vue 响应式原理(2x)。(Object.defineProperty)

  • observe:就是用来监测数据的变化。用于给数据添加 Observer 类。Observer 的作用是给对象的属性添加 getter 和 setter,对于数组元素则循环给里面的值调用 observe 然后添加 Observer 类。如果是对象则递归调用设置 getter 和 setter 属性。
  • Dep:主要是对 Watcher 的管理。使相关作用域分隔开。当setter 改变时,Dep 则会通知对应的 Watcher 去触发update 过程,然后回调实现对应数据的刷新
  • Watcher:依赖搜集、触发数据更新。Watcher 类型有四种
  1. deep Watcher:深度Watcher 即deep属性设置的效果。即递归遍历对象
  2. user watcher:通过watch 设置的值,则执行的是user watcher
  3. computed watcher:当计算属性最终计算的值发生变化才会触发渲染 watcher 重新渲染。专门用于计算属性。
  4. sync watcher:用于设置watcher内同步,默认是异步的

  流程:vue 初始化时,也就是执行_init() 时,会 new Watcher() 执行Watcher的 get() ,get() 则会触发 Dep.target 的值(Watcher)改变,然后渲染虚拟数据(render函数),则会调用observe 实现监测,调用监测时,会将每个Watcher 放入 Dep中,到此依赖收集完成,还原Dep.target 值。当数据更新触发 observe 的 setter ,setter 触发Dep 去查找 Watcher,Watcher 对数据进行更新。

三。计算属性 computed 和侦听属性 watch

  • computed(computed watcher): 在 initState 执行后,被执行添加 Watcher(依赖收集 )。适合用在模板渲染中,某个值是依赖了其它的响应式对象甚至是计算属性计算而来。computed 存在缓存(只有需要的值改变才会执行)。
  • watch(user watcher):在computed 执行后执行。适用于观测某个值的变化去完成一段复杂的业务逻辑。
【零基础入门VUE】VueJS - 概述 不会对 DOM 进行更改,而是创建 DOM 的副本,该副本以 JavaScript 数据结构的形式存在。最终的更改会更新到真实的 DOM,用户将看到它的变化。随后,对两个 JavaScript 对象进行比较,并在真实 DOM 中更新最终的更改。Ember 添加了 glimmer 渲染引擎,旨在提高重新渲染性能,这与使用虚拟 DOM 的 VueJS 和 React 是类似的概念。随着时间的推移,淘汰赛的发展速度已经放缓。VueJS 继承了 Angular 和 React 的优点,并构建了一个强大的库。 阅读详情

相关推荐

squidpy 教程 2:利用 Scanpy 和 Squidpy 进行空间数据的可视化分析

本教程详细介绍了如何利用Squidpy和Scanpy对空间转录组数据进行可视化分析。通过将Scanpy处理得到的聚类结果映射回原始组织图像,并结合基因表达与空间邻域信息,帮助研究者直观揭示细胞类型分布、基因表达模式及空间相互作用,从而深入挖掘空间组学数据的生物学意义。

weixin_29081703的博客 446

vue双向数据绑定原理

vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图。主要分为一下几个模块: Vue:把 data 中的成员注入到 Vue 实例,并且把 data 中的成员转成 getter/setter Observer:能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知 Dep Compiler:解析每个元素中的指令/插值表达式,并替换成相应的数据 De

m0_51400347的博客 132

WEBGL Shader零基础教程(四):片元着色器核心逻辑

本文系统介绍了WebGL渲染管线中片元着色器的核心概念与应用。主要内容包括:1)片元着色器在渲染管线中的定位与作用,作为逐像素处理单元接收插值数据并计算最终颜色;2)输入数据类型与使用规则,重点讲解varying变量和uniform变量的应用场景;3)颜色计算的核心逻辑,涵盖基础色、渐变、纹理采样和颜色混合;4)进阶特效实现与性能优化技巧,包括交互效果、内置函数组合和GPU计算优化;5)通过综合案例演示了纹理、波纹与交互效果的整合实现。文章提供了完整的代码示例和调试建议,为后续学习光照模型、后期处理等高级渲

分享知识,拥抱变化 1374

vue中的:__ob__: Observer【数组和对象的转化】

vue:ob: Observer【数组和对象的转化】 问题:vue中的data数据的this.data在mothods中遍历,却无法取值 但是可以打印出来: 数组里边有个__ob__: Observer 数组里边每个对象有个__ob__: Observer 分析 _ob_: Observer是 Vue 对数据监控添加的属性,不可枚举和遍历 解决(转化之后即可取值) 将数组转为普通数组,再将数组里边的对象转为普通对象,如下: let newarr = Object.as

weixin_46331416的博客 1万+

电商智能客服Agent开发实战:从零到一构建企业级AI助手

电商智能客服Agent是下一代AI应用的核心形态,它不仅能够回答用户问题,还能自主规划任务、调用工具并执行完整工作流程。本文将深入探讨AI Agent的基本概念、技术实现方式及电商场景中的应用,提供完整的开发流程和代码示例,帮助开发者从零开始构建一个功能强大的电商智能客服系统。通过模块化设计、多轮对话记忆管理和工具集成,这个Agent能够处理订单查询、商品推荐、退换货流程等复杂任务,同时具备企业级的安全性和稳定性保障。通过本文的介绍,读者已经掌握了构建电商智能客服Agent的核心技术与实现方法。

m0_64363449的博客 1365

Spring Boot整合Apache Hop 2.3.0实战:从零搭建数据管道(附完整代码)

本文详细介绍了如何在Spring Boot项目中整合Apache Hop 2.3.0,从零开始构建可嵌入的数据管道。内容涵盖环境初始化、依赖配置、管道设计,并通过完整代码示例演示了如何通过REST API触发执行,实现数据同步与ETL流程的自动化管理,为微服务架构提供灵活的数据集成方案。

web99的专栏 633

Vue中 {__ob__: Observer} 对象的问题

Vue中 {ob: Observer} 对象的问题: 这些数据是vue对数据设置的监控器,一般都是不可枚举的。 解决方案: 可以使用JSON.parse(JSON.stringify(ob)) 得到深拷贝的原始数据对象;要把这个数据获取原始数据 JSON.stringify([data]) 变成字符串 JSON.stringify(json) // 把字符串转换成json; JSON.parse(' {"a":12, "b":"blue"}') // 把json转换成字符串 // parse方法里

qq_37291367的博客 1038

Unity游戏开发客户端Unity基础

Unity游戏开发客户端面经 之 Unity 篇

Sea3752的博客 2万+

告别困惑!Vue 响应式原理浅显易懂的解析

在此过程中,我们将使用花名簿(Dep)、同学(属性)和影分身(Watcher)的概念来讲解,使内容更易理解。当我们修改某个属性值时,**Dep 实例会通知花名簿中记录的所有影分身(Watcher 实例)** ,让它们执行相应的操作。Observer 负责**将一个普通对象转换为响应式对象**,也就是给每一个属性添加 **getter** 和 **setter**。我们再假设每个同学都学会了影分身,那么**每个同学可能都会有多个影分身**,这个**影分身就是我们的 Watcher 实例**。

QINGLING227的博客 291

Globus 数据下载

Globus 大数据下载流程~

weixin_43978558的博客 6644

YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码)

摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1322

Vue开发工具vuejs-devtools超级详细安装教程以及常见问题解决

这绝对是最详细的Vue开发工具vuejs-devtools安装教程,相信你只需要5分钟即可解决所有问题 所需的所有文件,链接:https://pan.baidu.com/s/19GWDS_7GodIdFBUO0eTDAg 提取码:2yvc 一、vue.js插件下载 下载地址:vue.js插件下载; 点击进入Vue官网即可下载,共有两种版本的插件(开发版本:vue.js,生产版本:vue.main.js),建议使用开发版本。开发版本有更多的错误信息提示和调试,文件较大,生产办文件小但是很多提示不全,解决开发

goog_man的博客 6万+

化工模拟与优化软件:Aspen HYSYS二次开发_(15).工业应用与项目管理

项目背景、目标和主要流程。

kkchenjj的博客 1131

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

ranran0306的博客 9738

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

vue和vuejs区别_D3vue-VueJS的D3插件

vue和vuejs区别 D3vue (D3vue) D3 integration with Vue.js. 与Vue.js的D3集成。 View demo 查看演示 Download Source 下载源 d3vue is a plugin for VueJS 2 that allows you to take data from your Vue instance and bind ...

cuk5340的博客 3290

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VueJS WebPack separating javascript from vue

VueJS 与 Webpack:将 JavaScript 从 Vue 文件中分离

suiusoar 1369

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

GopherJS-Vue:VueJS的Golang绑定

GopherJS-Vue:VueJS的Golang绑定 GopherJS-Vue 是一个开源项目,旨在将 Golang 语言与流行的前端框架 VueJS 结合起来。该项目的主要编程语言是 Go 和 JavaScript。 核心功能 GopherJS-Vue 的核心功能是实现了 VueJS 的数据绑定功能,使得开发者可以使用 Golang 结构体来提供 VueJS 的双向数据绑定上下文。这样,开发者...

gitblog_00837的博客 467

提升Vue开发效率的利器:vuejs-devtools

提升Vue开发效率的利器:vuejs-devtools 【下载地址】Vue开发工具vuejs-devtools安装教程及常见问题解决 Vue开发工具vuejs-devtools安装教程及常见问题解决本文详细介绍了如何安装Vue开发工具vuejs-devtools,并提供了常见问题的解决方法 ...

gitblog_06522的博客 752

vue模板html,VueJS模板

本篇文章帮大家学习VueJS模板,包含了VueJS模板使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。在前面的章节中我们已经学到了如何在屏幕上以文本内容的形式获得输出。 在本章中将学习如何在屏幕上以HTML模板的形式获取输出。要理解这一点,让我们先看看一个例子,并在浏览器中看到输出。创建一个文件:template.html -VueJs模板名字 : {{name}}城市...

weixin_36371504的博客 927

vuejs插件_VueJS 2的基本翻译插件

vuejs插件 Vue-Polyglot (Vue-Polyglot) basic translation plugin for VueJS 2+. VueJS 2+的基本翻译插件。 View demo 查看演示 Download Source 下载源 安装 (Installation) npm install --save vue-polyglot TLDR (TLDR) can lo...

cuk5340的博客 2160

探索Vue.js的无限可能 —— vuejs-challenges

挑战自我,共同成长,Vue.js挑战等你来战!

2401_83063795的博客 2881

Vuejs

vuejs简单入门 1.VueJS 概述与快速入门 1.1 VueJS介绍 Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑 定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 Vue官网=====> 1.2 MVVM模式 MVVM是Model-View-ViewModel的简写。它本质上就是MVC...

qq_42121746的博客 2545

vuejs知乎_Vuejs 从入门到实战 1-什么是vuejs

Vuejs 从入门到实战 1-什么是vuejs关于这个问题很难回答如果面试的时候问到了我说是一个框架面试官说,你错了,这只是一个库如果我说这只是一个库面试官也可以说,你错了,这其实是一个渐进增强的框架如果我说这可以是一个库也可以是一个框架那么面试官还可以说我大错特错,这既不是库也不是框架,而是view,mvc的view那如果是vuejs是一个view,是mvc的view呢?错了错了!vuejs是m...

weixin_34477616的博客 333

标题:VueJS的文档利器——JSDoc-VueJS

标题:VueJS的文档利器——JSDoc-VueJS 1、项目介绍 JSDoc-VueJS 是一款为VueJS开发者精心设计的JSDoc插件。它允许您方便地在.vue文件中添加注释,以便自动生成详细的组件属性(props)、数据(data)、计算属性(computed)和方法等文档,使得代码更易读、可维护性更强。 2、项目技术分析 JSDoc-VueJS依赖于Node.js环境,并要求Vue版本为...

gitblog_00078的博客 705

VueJS 基础之组件

组件化的目的,是为了让页面中的各个部分可以被复用,以减少重复的代码。另一方面,也可以更好地使团队分工协作,让不同的人负责编写不同的组件。

两个月亮 1679

vuejs指令csdn_VueJS的长按指令库

vuejs指令csdn 长时间点击 (vue-long-click) Vue long click (longpress) directive. Vue长按(longpress)指令。 View Demo 查看演示 Download Source 下载源 安装 (Install) npm install vue-long-click --save import { longClickDir...

cuk5340的博客 391
上一篇: opencv.js
下一篇: js 面试题(3)
黄祚敏
博客等级 码龄10年 22粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值