前端入门(三)Vue生命周期、组件技术、事件总线、

news2024/12/27 13:05:02

文章目录

  • Vue生命周期
  • Vue 组件化编程 - .vue文件
    • 非单文件组件
      • 组件的注意点
      • 组件嵌套
      • Vue实例对象和VueComponent实例对象
      • Js对象原型与原型链
      • Vue与VueComponent的重要内置关系
    • 应用单文件组件构建
  • Vue脚手架 - vue.cli
    • 项目文件结构
    • ref
    • props
    • mixin
    • 插件
    • scoped样式

Vue生命周期

在这里插入图片描述

在这里插入图片描述

  • 1、beforeCreate():数据代理尚未开始,此时无法通过vm访问到data中的数据,methods中的方法。
  • 2、created():数据监测和数据代理完成了,可以通过vm访问到data中的数据,methods中的方法。
  • 3、beforeMount():页面呈现的是未经Vue编译的DOM结构,所有对DOM的操作,最终都不奏效。
  • 4、mounted():页面中呈现的是经过Vue编译的DOM,此时对DOM的操作均有效,一般在此进行:开启定时器、发送网络请求、订阅消息、绑定自定义事件等初始化操作。1-4步骤构成了挂载的主要流程
  • 5、beforeUpdate():此时数据是新的,但是页面是旧的,即新的数据尚未更新到页面上。
  • 6、updated():此时,页面的显示的是新数据,页面和数据同步完毕。
  • 7、beforeDestroy():此时vm中所有的data、methods、指令等等,都处于可用状态,马上要执行销毁的过程,一般在此阶段:关闭定时器、取消订阅消息,解绑自定义事件等收尾操作。
  • 8、destroyed():销毁完毕。可以使用this.$destroy(),让vue实例自己销毁,Vue实例销毁后,自定义事件会失效,但原生DOM事件依然有效。

Vue 组件化编程 - .vue文件

组件的定义——实现应用中局部功能代码和资源的集合。

在这里插入图片描述
在这里插入图片描述

非单文件组件

一个组件文件中由多个其他组件构成,称为非单文件组件。

Vue使用组件的三大步骤:

  • 1、定义组件(创建组件)
  • 2、注册组件(Vue的components局部注册或者使用Vue.component(‘组件名’, 组件))全局注册。
  • 3、使用组件(写组件标签)

1、创建组件
创建组件时,需要注意:

  • 不需要写el标签:el标签是将Vue实例与DOM元素绑定的,当你创建组件时,你并不知道需要将其用在哪里,因此不需要写el标签。
  • 组件的data属性需要写成函数式的:因为一个组件可能在多个地方使用,如果写为对象式的,各个组件之间的数据变化会相互影响。
  • 使用Vue.extend({})创建组件,在template属性中,使用反引号包裹HTML标签。
    在这里插入图片描述

在这里插入图片描述

2、注册组件
局部注册:在Vue实例的components属性中,标注上构建的组件。
在这里插入图片描述

使用`Vue.componet(‘组件名’, 组件);可以注册全局组件,即所有的Vue实例,尽管在components属性中没声明该组件,也可直接使用。
在这里插入图片描述

3、使用组件,写组件标签。
在这里插入图片描述

组件的注意点

在这里插入图片描述

组件嵌套

组件可以嵌套使用。注册给谁的组件,就可以在它的template属性中应用这个组件标签。
在这里插入图片描述

Vue实例对象和VueComponent实例对象

以定义的school组件为例:

  • 1、当我们使用school标签时,本质上是调用了VueComponent构造函数,该构造函数是Vue.extend生成的。
  • 2、当使用school标签时,Vue框架解析时会帮助创建school组件的实例对象,方式就是执行new VueComponent(options)
  • 3、特别注意,每次调用Vue.extend,返回的都有一个全新的VueComponent对象。
  • 4、关于this指向,组件配置中:data函数、methods中的函数,watch、computed函数,它们的this均是VueComponent实例对象。而在new Vue(options)配置中,data函数、methods中的函数,watch、computed函数,它们的this均是Vue实例对象
  • 5、根组件Vue实例对象会有$children属性,其中就是VueComponent实例对象数组。
  • 6、Vue实例对象和VueComponent实例对象在创建时接收的options选项,除了Vue实例可以使用el 绑定具体的DOM标签外,其余都一样。

在这里插入图片描述

Js对象原型与原型链

JavaScript 是一种基于原型的语言 (prototype-based language),每个对象拥有一个原型对象,对象以其原型为模板,从原型继承方法和属性,这些属性和方法定义在对象的构造器函数的 prototype 属性上,而非对象实例本身。

每个Js对象都会有一个名为__proto__的内部属性,该属性指向当前对象的原型对象。在Js中,当我们访问一个对象的某个属性时,如果该对象没有这个属性,Js语法引擎就会沿着该对象的原型链(在对象的__proto__上找)向上查找,直到找到该属性为止。在查找对象属性时,通过__proto__查找原型的属性这个过程,就用到原型链。

当然在Js对象中,根原型为Object,而Object的__proto__是为null的。

原型属性又可分为显示原型属性隐式原型属性

  • 显示原型属性访问:构造函数名.prototype
  • 隐式原型属性访问:实例对象名.__proto__
  • 由这两种方式访问到的原型对象是等价的,即指向的是同一个原型对象。构造函数名.prototype === 实例对象名.__proto__
  • 由原型链的属性访问方式可知,如果给原型对象添加一个属性x = 99,那么可以由实例对象d的原型对象属性访问它,即d.__proto__.x,实际上对于__proto__的访问是Js执行引擎自动完成的,因此d.__proto__.x访问的方式,可以等价于使用d.x

在这里插入图片描述

Vue与VueComponent的重要内置关系

VueComponent(Vue组件)的原型对象的原型对象是Vue的原型对象
在这里插入图片描述

应用单文件组件构建

1、构建一个单文件组件
一个单.vue文件,基本结构如下;
在这里插入图片描述
定义好单文件组件是为了提供给 别的文件使用,因此需要使用export将该文件进行暴露。
export default {
……
}
实际上是一种简写,等价于:
const vc = Vue.extend(
{
……
}
)

export vc

在这里插入图片描述
2、入口Vue文件:App.vue
一般而言,Vue项目的根组件为App.vue,这里使用其他的组件。
组件化编程三步走:

  • 导入
  • 注册
  • 使用标签
    在这里插入图片描述
    3、入口js文件:main.js
    构建的根组件App.vue并没有使用,在main.js中构建App.vue的实例对象,使用el属性为其绑定DOM对象。

在这里插入图片描述

4、入口HTML文件:index.html
在这里插入图片描述

Vue脚手架 - vue.cli

项目文件结构

在这里插入图片描述

ref

props

mixin

插件

scoped样式

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

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

相关文章

企业远程访问业务系统:对比MPLS专线,贝锐蒲公英为何更优优势?

如今,企业大多都会采用OA、ERP、CRM等各种数字化业务系统。 私有云、公有云混合架构也变得越来越常见。 比如:研发系统部署在公司本地私有云、确保数据安全,OA采用公有云方案、满足随时随地访问需求。 如此一来,也产生了远程访问…

OSS+CDN的资费和安全

文章目录 花费OSSCDNOSS CDN 安全OSS防盗链跨域设置CORS数据加密 CDN防盗链URL鉴权Cookie鉴权远程鉴权IP黑白名单UA黑白名单 回源服务自定义私有参数IP黑白名单数据加密 花费 OSS 存储费用 :0.12元/GB/月下行流量费用 :0.5元/GB请求费用 :…

PyQt6简介

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计12条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

threejs创建一个旋转的正方体【完整代码】

效果: 中文网three.js docs 1.搭建环境 安装three 首先我们需要新建一个项目 vue/react都可 这里以vue为演示 npm i three 找到一个新的页面 在页面script的地方导入three import * as THREE from "three" 或者自己逐个导入 import {PerspectiveC…

Tiktok小店如何入驻?注册流程与资料全解

作为国内成功的出海App之一,Tiktok的特色就是社交平台兴趣电商,已然成为当前跨境电商的一大趋势。数据显示,目前Tiktok全球月活跃用户已接近16亿,正是红海一片。非常值得跨境电商玩家入局!今天就来给大家整理一份tk小店…

行情分析 - - 加密货币市场大盘走势(11.24)

大饼昨日震荡幅度很小,而今天延续昨日的空头思路。当然如果从MACD日线来看,处于上涨趋势,稳健的可以选择观望等待。空头思路是因为目前EMA21均线和EMA55均线依然保持很远,最近两个月BTC上涨40%,而最近持续保持高位很快…

Motion Plan之基于采样的路径规划算法笔记

Motion Plan之搜索算法笔记 背景: 基于采样算法是一种在路径规划中广泛应用的有效方法。它通过在图中随机选择点来生成一个简化的搜索图,从而加速搜索过程。这种方法的主要优点包括减少内存使用,避免计算错误,具有动态障碍物对抗…

NFT Insider115:The Sandbox开设元宇宙Diorama快闪店,​YGG Web3 游戏峰会已开幕

引言:NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品,浓缩每周NFT新闻,为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据,艺术新闻类,游戏新闻类,虚拟世界类&#…

如何用SWIG封装c++接口给java使用?

SWIG是什么? SWIG(Simplified Wrapper and Interface Generator)是一个将C/C接口转换为其他语言接口的工具,从而可以讲C/C的库集成到其他语言的系统中。目前SWIG已经可以支持Python, Java, C#,Ruby,PHP,R语言等十多种语言。 官方网址&…

银河麒麟安装Docker

# 配置阿里云 Centos8 镜像源,需要额外的一些依赖,而这些依赖在麒麟官方的源里面是没有的 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo# 配置阿里云 docker 镜像源 sudo yum-config-manager --add-r…

无人智能货柜:提升购物体验

无人智能货柜:提升购物体验 随着移动支付的普及,人们日常生活中的主要场景已经渗透了这一支付方式。同时,无人智能货柜作为购物的重要渠道,正在崭露头角。通过人工智能、图像识别和物联网技术的应用,无人智能货柜将使购…

聚类笔记:HDBSCAN

1 算法介绍 DBSCAN/OPTICS层次聚类主要由以下几步组成 空间变换构建最小生成树构建聚类层次结构(聚类树)压缩聚类树提取簇 2 空间变换 用互达距离来表示两个样本点之间的距离 ——>密集区域的样本距离不受影响——>稀疏区域的样本点与其他样本点的距离被放大——>…

Linux中tar命令的几个高级用法

在Linux世界中,Tar命令是一把解密归档世界的魔法工具。无论是打包、压缩还是解压,Tar命令都能胜任。本文将生动地介绍Tar命令的基本用法,并深入探讨五个常用选项,帮助读者在Linux系统中灵活运用这个强大的工具。 一、命令概述 Ta…

手术室麻醉信息管理系统源码,手术室麻醉信息系统的功能作用

手术室麻醉信息管理系统是定位于手术室和麻醉科的科室级临床信息管理系统,主要用于与手术麻醉相关的各项数据的记录、管理和应用,实现医疗信息的共享及再利用,提高科室的整体信息化水平。 该系统将手术室内的各种设备(如呼吸机、麻…

NX二次开发UF_CSYS_set_wcs_display 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_wcs_display Defined in: uf_csys.h int UF_CSYS_set_wcs_display(int display_status ) overview 概述 Set display of work coordinate system. 展示工作坐标系。 …

VR全景展示,“超前点播”打开娱乐行业线上营销门户

如今,人们的生活水平正在逐步提高,这种提高不仅仅是体现在衣食住行上,更多方面是体现在大众的娱乐活动上。我们可以看到,相比于过去娱乐种类的匮乏,现如今,各种娱乐活动可谓是百家争鸣,例如温泉…

井盖位移传感器生产厂家推荐,时刻感知井盖

马路上的井盖虽然看似微不足道,但实际上对于行人的“脚下安全”起着至关重要的作用。这些井盖下连接着供排水、燃气、电力、供热、通信等功能的管路和线路,是城市生命线运行的重要保障。因此保持井盖状态正常、明确管理责任是确保车辆和行人安全通行的重…

举个栗子!Tableau 技巧(260):文本表中省市县数据的灵活逐级下钻「方法二」

之前,我们分享过 🌰:实现地图中的省市县逐级下钻。有数据粉提出问题:如果不是地图,而是文本表,有什么办法可以像这样,实现地理位置逐级下钻呢? 文本表也是可以的。但是,…

zerotier 入门及初始使用

官网终端下载地址 https://www.zerotier.com/download/ 配置 创建网络 到默认的控制中心创建网络 https://my.zerotier.com/ 点击进入,将网络ID复制 加入网络 MacOS 将上面的网络ID复制到下方进行输入 Windows Linux # xxxxxxxxxxxxxx 网络节点ID sudo zerotier-cli join xx…

支持Arm CCA的TF-A威胁模型

目录 一、简介 二、评估目标 2.1 假定 2.2 数据流图 三、威胁分析 3.1 威胁评估 3.1.1 针对所有固件镜像的一般威胁 3.1.2 引导固件可以缓解的威胁 3.1.3 运行时EL3固件可缓解的威胁 一、简介 本文针对支持Arm Realm Management Extension (RME)、实现Arm Confidentia…