深度学习Vue框架生命周期(三)

一.什么是生命周期?

在vue中,生命周期就是vue实例程序从创建到销毁的这个过程,在生命周期中,不同阶段我们可以做不同的事情。vue的生命周期是创建阶段、挂载阶段、更新阶段、销毁阶段

 二.什么是钩子函数?

钩子函数就是生命周期中的回调函数,在vue中,有8个生命周期的钩子函数

------------>创建阶段

创建之前执行的钩子函数     beforeCreate 

创建后执行的钩子函数          created       用来做初始化数据

------------->挂载阶段    

挂载之前执行的钩子函数      beforeMount

挂载后执行的钩子函数          mounted     进行dom操作

------------------>更新阶段    数据发生改变才执行的回调函数

更新之前执行的钩子函数      beforeUpdate

更新之后执行的钩子函数       updated     

------------------->销毁阶段    程序的卸载   ,显示和隐藏  v-if

 销毁之前执行的钩子函数   beforeDestroy

销毁之后执行的钩子函数     destroyed

 三.组件

1.什么是组件

组件就是一个功能 ,相当于vue实例,可复用的vue实例

定义全局组件 

//1.全局定义组件const ElButton = {// 设置数据data() {return {message: "这是一个按钮123"}},// 渲染模板template: `<div><div>{{message}}</div><button @click="foo" style="padding: 10px 20px; border: 0; background-color: skyblue; color: white;">点击按钮</button>   </div>`,// 设置方法methods: {// 提示foo(){alert("您好,触发事件。。。")}}}
2.注册全局组件
Vue.component('el-button',ElButton)

定义局部组件 

 new Vue({//挂载容器el: "#app",// 注册组件(此处表示局部注册)components: {// 此处注册组件名称采用驼峰命名“ElSearch”,在使用的时候需要改成 “el-search”// "el-search": {},"ElSearch": {data(){return {}},template: `<div><input type="text" placeholder="请输入关键字" style="width: 90%;height: 40px;">    </div>`},}})

2.注册组件时需要注意的事项!!!

1.采用驼峰命名法注册组件名称时“ElSearch”,使用组件时需要改用短横线 “el-search

2.不能使用html文档内置的标签名称作为组件名称例如    div   hearder footer nav   

可以采用自定义的   例如Elbutton  ComHeader

3.组件  中的data  必须返回的是一个对象         data(){}

4.template 选项需要有根节点   <div></div>

5.组件中的属性计算、侦听、过滤以及生命周期的钩子函数和vue实例写法一致

3.组件嵌套关系 (父组件嵌套子组件)

//定义子组件const ElementChild = {template: `<div><h3>子组件</h3></div>`}
//定义父组件const ElementParent = {template: `<div><h2>父组件</h2><element-child></element-child></div>`,// !!!注意是在父组件中注册子组件components: {ElementChild}}new Vue({//挂载容器el: "#app",// 在vue实例中注册父组件components: {ElementParent}})

四.组件传值

1.父组件传值给子组件(自定义属性)

父组件传值给子组件,子组件通过props自定义属性,在父组件的template中的子组件中,通过v-bind绑定那个自定义属性,传入父组件的数据

 const ElementChild = {//  父组件传值需要子组件自定义属性// 通过在props选项中自定义属性接收父组件传递的数据  props: ['xxx'],props:{xxx:{// 未传参数default:'默认值',// 传递了参数type:[String,Number]}},template: `<div><h3>子组件</h3><p>{{xxx}}</p></div>`,};// 父组件const ElementParent = {// 设置数据data(){return {// 传值数据可写可不写(但必须要有自定义的操作)message: "这是父组件的数据"}},template: `<div><h2>父组件</h2><element-child v-bind:xxx="message"></element-child><element-child :xxx="100"></element-child><element-child></element-child></div>`,// 在父组件中注册子组件components: {ElementChild}}

2.子组件传值给父组件(事件)

子组件的数据,在初始化钩子函数中通过this.$emit(自定义事件,数据),在父组件中通过methods定义方法get(data){}接收该数据,在父组件的template子组件中使用该自定义的事件   @自定义事件="get"

// 要定义了子组件才能用在父组件上const ElementChild = {data(){return {num:100}},template: `<div><h3>子组件</h3><button @click="add">发送数据</button></div>`,methods:{add(){ this.num--;// 自定义事件把数据传入// this.$emit('child-num',{cnum:this.num})}},//也可以采用钩子函数 不需要点击把数据传递给父组件// 在初始化页面就传值created(){this.$emit('child-num',{cnum:this.num})}};const ElementParent = {data(){return {num:0}},// 在模板中使用子组件自定义的事件template: `<div><h3>父组件</h3><p v-if="num!=0">{{num}}</p><element-child @child-num="jieshou"></element-child></div>`,components: {ElementChild,},methods:{// 子组件传递的数据自定义jieshou(data){this.num=data.cnum}}};

3.兄弟传值   (桥梁)

通过创建一个新的vue实例,其中一个组件通过 新的实例名称.$emit('xxx',this.num)  ,

 // 通过桥梁传值,创建一个新的vue实例const bridge=new Vue()const CompA={data(){return{num:100}},// 2.可以通过事件进行使用该方法template:`<div><h3>A组件</h3><button @click="senda">点击发送</button></div>`,methods:{// a发送的方法senda(){bridge.$emit('xxx',this.num)}},// 1.通过初始化created钩子延迟函数异步传递使用方法// 此处必须要用异步代码延迟,因为组件a与组件b是合并关系created(){setTimeout(()=>{// this.senda()},10)}}const CompB={data(){return {num:0}},template:`<div><h3>B组件</h3><p>{{num}}</p></div>`,// b接收a通过自定义属性传递的参数created(){bridge.$on('xxx',(value)=>{this.num=value})}}

4.Vue原型添加数据

挂载到原型的数据可以给构造函数的实例去使用,但是添加到原型上的数据没有响应式

 //在此点击事件,num的值是不会有变化的,因为该num值是通过原型添加的
<button @click="changeNum">点击num++</button><comp-header></comp-header><comp-footer></comp-footer>Vue.prototype.num = 100;const CompHeader = {template: `<header><h3>头部组件</h3><p>{{num}}</p></header>`,};const CompFooter = {template: `<footer><h3>尾部组件</h3><p>{{num}}</p></footer>`,};new Vue({//挂载容器el: "#app",components:{CompHeader,CompFooter},methods:{changeNum(){this.num++console.log(this.num);}}});

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

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

相关文章

数据库数据恢复—Sql Server数据库文件丢失如何恢复数据?

服务器数据恢复环境&#xff1a; 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5&#xff0c;划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检&#xff1a; 由于未知原因&#xf…

Windows联网状态工具TCPView

文章目录 TCPView命令行工具更多Sysinternals Suite工具 TCPView TCPView用于显示系统上所有 TCP 和 UDP 终结点的详细列表&#xff0c;包括本地和远程地址以及 TCP 连接的状态&#xff0c;界面如下。 列表的表头含义如下 表头含义表头含义Process name应用名称Process id进程…

最新Android Studio导入aar包的方法

以前的方式&#xff0c;目前看网上也大多数都是这种方式&#xff0c;导致我本地加的时候一直有问题 但是这样都无法sync以及编译通过&#xff0c;因为方式已经变了 1&#xff1a;将aar文件复制到MyApplication\app\libs下 2&#xff1a;在MyApplication\app\build.gradle下添加…

HTTP请求报文介绍

本章简要介绍渗透测试员在攻击Web应⽤程序时可能遇到的关键技术。 将分析HTTP协议、服务器和客⼾端常⽤的技术以及⽤于在各种情形下呈现数据的编码⽅案。 这些技术⼤都简单易懂&#xff0c;掌握其相关特性对于向Web应⽤程序发动有效攻击极其重要。 1.1 HTTP协议概述介绍 HTT…

VMvare进行靶场环境搭建,防火墙连接[物理主机,攻击机,靶机],主机与VM虚拟网卡拓扑形象,web连接防火墙报错

配置目标 两块虚拟网卡分别为vmnet1和vmnet8 vmnet1配置两个网段192.168.20.1/24和192.168.30.1/24 其中192.168.20.0网段将防火墙管理接口0/0/0&#xff0c;接口地址为192.168.20.100和物理机192.168.20.1/24进行连接 其中192.168.30.0网段将防火墙1/0/0接口&#xff0c;接…

智能AI写作,自动写文案效率高

随着科技的不断发展&#xff0c;人工智能领域的应用也日益广泛&#xff0c;其中智能AI写作作为一项新兴技术&#xff0c;正逐渐改变着传统文案写作的方式。智能AI写作是利用人工智能技术来生成文案内容&#xff0c;其高效率和高质量的特点吸引了越来越多的用户。在这个信息爆炸…

第十届蓝桥杯省赛真题(C/C++大学B组)

试题 A: 组队 答案&#xff1a;490 试题 B: 年号字串 #include <bits/stdc.h> using namespace std;int main() {//26进制数 int n;cin>>n;string s "111";for(int i s.length() - 1;i >0;i--){s[i] A - 1 n % 26;n / 26;}cout<<s<<…

如何发现高危的PoC和EXP?漏洞检测方法 示例,实战应急实战举例,包括:SQLi、XSS、SSTI/ELI、文件哈希、SSRF、命令执行/命令注入等等

如何发现高危的PoC和EXP?漏洞检测方法 & 示例,实战应急实战举例,包括:SQLi、XSS、SSTI/ELI、文件哈希、SSRF、命令执行/命令注入等等。 在网络安全领域,发现高危的PoC(Proof of Concept)和EXP(Exploit)对于防范和应对潜在的安全威胁至关重要。以下是关于如何发现高…

leetcode 1766

leetcode 1766 题目 例子 思路 将边的关系&#xff0c;转化为树结构。 记录val 对应的id 列表。 记录是否遍历过节点。 记录id 和对应的深度。 使用dfs&#xff0c; 从根开始遍历。 代码实现 class Solution { private:vector<vector<int>> gcds;//val : the …

AliyunCTF 2024 - BadApple

文章目录 前言环境搭建漏洞分析漏洞利用参考 前言 本文首发于看雪论坛 https://bbs.kanxue.com/thread-281291.htm 依稀记得那晚被阿里CTF支配的恐惧&#xff0c;今年的阿里CTF笔者就做了一道签到PWN题&#xff0c;当时也是下定决心要学习 jsc pwn 然后复现这道 BadApple 题目…

github克隆报错:failed: The TLS connection was non-properly terminated.

github克隆gazebo_ros_control报错 fatal: unable to access https://github.com/ros-controls/gazebo_ros_control.git/: gnutls_handshake() failed: The TLS connection was non-properly terminated. sudo apt-get install ros-noetic-gazebo-ros-control git 克隆gazeb…

如何正确使用数字化仪前端信号调理?(一)

一、前言 板卡式的数字转换器和类似测量仪器&#xff0c;比如图1所示的德思特TS-M4i系列&#xff0c;都需要为各种各样的特性信号与内部模数转换器&#xff08;ADC&#xff09;的固定输入范围做匹配。 图1&#xff1a;德思特TS-M4i系列高速数字化仪&#xff0c;包括2或4通道版…

买入----套住----再研究,凤凰雪球

雪球研究告一段落&#xff0c;今天买入了。&#xff08;最后一张图&#xff09; 跟之前产品的主要区别是&#xff0c;有效月的票息会当月支付。 &#xff08;图二&#xff09;是4种不同的情况下&#xff0c;对应的收益情况。 --------------------------分界线----------------…

Kimichat的浏览器插件Kimi Copilot:一键总结网页内容

在阅读网页的时候&#xff0c;如果需要总结网页内容要点&#xff0c;可以把链接丢进Kimichat&#xff0c;让它总结。但是&#xff0c;这样稍微有些麻烦。Chrome浏览器现在已经有一个非官方的Kimichat插件&#xff1a; Kimi Copilot - 网页总结助手&#xff0c;可以用Kimi AI一键…

XILINX 10G PCS PMA IP核使用

文章目录 一、设计框图二、模块设计三、IP核配置四、上板验证五、总结 一、设计框图 关于GT高速接口的设计一贯作风&#xff0c;万兆以太网同样如此&#xff0c;只不过这里将复位逻辑和时钟逻辑放到了同一个文件ten_gig_eth_pcs_pma_0_shared_clock_and_reset当中。如果是从第…

基于一阶微分的图像增强-梯度法(不丢弃任何像素变化--信息的提取作用)

首先我大致说一下前一小节的内容&#xff1a;反锐化掩模与高提升滤波处理 图像的锐化方法&#xff0c;其实有很多。锐化的定义提升突变像素的灰度级&#xff0c;减少变化缓慢像素的灰度级。 为什么可以利用模糊图像来进行锐化呢&#xff1f;因为模糊图像的模糊位置通常都是原…

《前端防坑》- JS基础 - 你觉得Boolean(‘false‘) === false吗?

问题 你觉得Boolean(false) false吗&#xff0c; Boolean([]) false吗&#xff1f; 答案 Boolean(false) true, Boolean([]) true 验证 原因 Boolean 对象表示两个值&#xff1a;"true" 或 "false" 但是能使Boolean为flase的只有6种情况&#xff…

嵌入式单片机入职第二天-EEPROM与IIC

上午&#xff1a; 1.安装Jlink驱动&#xff0c;死活没反应&#xff0c;因为昨天才装完系统&#xff0c;领导让我装电脑主板驱动 领导方法进惠普官网通过查询电脑型号&#xff0c;里面几十个驱动搞得我眼花&#xff0c;领导告诉我进官网就去开会了&#xff0c;可能因为是外网&…

idea如何debug看springsecurity的过滤器顺序

idea如何debug看springsecurity的过滤器顺序 先配置一个Spring启动对象,后续需要根据这个对象来获取SpringSecurity的过滤器链 设置一个输出信息&#xff0c;需要在输出信息这里打上断点&#xff0c;才方便查看过滤器链 public static void main(String[] args) {//此时不…

Qt | 信号与槽 原理、连接、断开(面试无忧)

1、信号和槽是用于对象之间的通信的,这是 Qt 的核心。为此 Qt 引入了一些关键字,他们是slots、signals、emit,这些都不是 C++关键字,是 Qt 特有的,这些关键字会被 Qt 的 moc转换为标准的 C++语句。 2、Qt 的部件类中有一些已经定义好了的信号和槽,通常的作法是子类化部件…