| |
|
开发:
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「四」—— 组件生命周期和数据共享 |
系列文章阅读 📑📑 >> Vue「一」—— 前端工程化 与 webpack 的基本使用及常用配置 >> Vue「二」—— vue 基本使用 、 vue 指令与过滤器 >> Vue「三」—— vue 侦听器、vue 计算属性、vue-cli、vue 组件 一、组件的生命周期两个概念:生命周期 和 生命周期函数 生命周期:是指一个组件从 创建 => 运行 => 销毁 的整个阶段,强调的是一个时间段。 生命周期函数:是由 vue 框架提供的 内置函数,会伴随着组件的生命周期,自动按次序执行。生命周期函数所强调的是时间点,也就是说如果你想在某个特定的时间点去执行某些事情,那么你就将代码写在相应的生命周期函数中即可。 可以参考文末给出的 >> 生命周期图示及说明 ,进一步理解组件生命周期执行的过程。
创建组件实例化对象后的第一个周期函数是
在初始化 props、data、methods 后(这时它们处于 可用状态 ),迎来了第二个周期函数的节点,也就是 🎈🎈 注意:这时组件的模板结构尚未生成,不能操作 DOM。
内存中 的模板编译生成 HTML 结构后,迎来第三个生命周期函数 🎈🎈 注意:此时只是在内存中生成 HTML 结构,并没有渲染到浏览器中。
内存中的 HTML 结构成功渲染到了浏览器之后,迎来第四个生命周期函数 🎈🎈 注意:最早在此时可以操作浏览器中 DOM 元素。
当修改 data 中数据时,将要 根据更改后的数据重新渲染组件的模板结构时,迎来了周期函数 🎈🎈 注意:数据是新数据,结构是旧结构。数据变化时才执行,最少执行 0 次。
已经根据最新的数据,重新渲染了组件的 DOM 结构,此时迎来了周期函数 🎈🎈 注意:数据是新数据,结构是新结构。
将要销毁此组件,但是还尚未销毁,组件仍处于正常工作的状态,迎来
组件已经被销毁,同时,此组件在浏览器中的 DOM 结构已经被完全移除,迎来 ? 二、组件之间的数据共享在项目开发中,组件之间的最常见的关系分为如下两种:父子关系 和 兄弟关系 。下面我们分别来介绍 父子组件间如何数据共享 和 兄弟组件间如何数据共享 。 父组件向子组件共享数据需要使用 自定义属性 。这里的自定义属性定义在子组件内,父组件只是负责提供数据传递给子组件。参考下面代码:
? 子组件向父组件共享数据使用 自定义事件 ,子组件可以使用 $emit 触发父组件的自定义事件,通过 传递参数 ,将子组件中数据传递给父组件的事件处理函数。在父组件事件处理函数中,将从子组件获取到的数据 转存 给到父组件自身使用,这就完成了子组件向父组件的数据共享。
? 在 vue2.x 中,兄弟组件之间数据共享的方案是 EventBus 。具体使用步骤如下:
? 三、ref 引用ref 用来辅助开发者在 不依赖于 jQuery 的情况下,获取 DOM 元素或组件的引用。在每个 vue 的组件实例上,都包含一个 $refs 对象 ,里面存储着对应的 DOM 元素或组件的引用。默认情况下,组件的 $refs 指向一个空对象 。 如下图,如果直接打印 vue 实例对象,可以发现其含有一个空的 $refs 对象。 使用 ref 引用 DOM 元素 如果想要使用 ref 引用页面上的 DOM 元素,则可以按照如下的方式进行操作:
再次打印 vue 实例,可以发现 &refs 对象中有了属性 myref,通过 使用 ref 引用组件实例
? 组件的 $nextTick(callback) 方法,会把 cb 回调 推迟到下一个 DOM 更新周期之后 执行。通俗的理解是:等组件的 DOM 更新完成之后,再执行 cb 回调函数。从而能保证 callback 回调函数可以操作到最新的 DOM 元素。 来看一个
实现效果,点击显示输入框,并且自动聚焦: 那么,如果不使用 这里来说明一下,当更改完 data 中数据
因为,更改数据 四、购物车案例实现步骤:
代码过长不再给出,如果需要可以私信博主。 总结下: Ⅰ. 此案例主要是对前面所学知识的综合练习,重点利用了组件间的数据共享:父组件向子组件传值用 Ⅱ. 此外还需注意计算属性的使用,计算属性需要使用 return 将值返回。虽然在 Ⅲ. 在利用 Ajax 请求页面数据时,必须将请求来的数据转存到组件的
Ⅳ. 编码规范上,在渲染组件时,按照先 vue指令 => 属性绑定 => 事件绑定 的顺序:
Ⅴ. 再说一下之前没怎么使用过的数组中
本例中用于获取勾选商品的总价格和总数量,实现方法是先利用
? > 附:生命周期图示及说明
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/24 5:46:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |