当前位置: 首页 > article >正文

Vue全流程--Vue2组件的理解第二部分

组件命名规则

好的命名规则可以省去很多不必要的麻烦,这个好习惯还是要养成的

一个单词组成:

第一种写法(首字母小写):school

第二种写法(首字母大写):School

多个单词组成:

第一种写法(kebab-case命名):my-school

第二种写法(CamelCase命名):MySchool (需要Vue脚手架支持)

备注:

(1).组件名尽可能回避HTML中已有的元素名称,例如:h2、H2都不行。

(2).可以使用name配置项指定组件在开发者工具中呈现的名字。

2.关于组件标签:

第一种写法:<school></school>

第二种写法:<school/>

备注:不用使用脚手架时,<school/>会导致后续组件不能渲染。

组件嵌套

组件嵌套就是,一个组件里面使用了另一个组件

//定义school组件
		const school = Vue.extend({
			name:'school',
			template:`
				<div>
					<h2>学校名称:{
  
  {name}}</h2>	
					<h2>学校地址:{
  
  {address}}</h2>	
					<student></student>
				</div>
			`,
			data(){
				return {
					name:'尚硅谷',
					address:'北京'
				}
			},
			//注册组件(局部)
			components:{
				student
			}
		})

在一个组件里使用compents局部注册就可以了,然后调用组件student,多个组件用“,”隔开即可。

Vue与Vuecompent关系

两个构造函数的关系

先看图

在Vue中我们利用构造函数(我是以java中的构造函数角度理解),通过调用构造函数,创建实例对象(我们的网站)

在VueComponent中我们也是利用构造函数,通过调用构造函数,创建组件的实例对象(我们网站中的某一部分) 

以组件嵌套中的代码为例子

//定义school组件
		const school = Vue.extend({
			name:'school',
			template:`
				<div>
					<h2>学校名称:{
  
  {name}}</h2>	
					<h2>学校地址:{
  
  {address}}</h2>	
					<student></student>
				</div>
			`,
			data(){
				return {
					name:'尚硅谷',
					address:'北京'
				}
			},
			//注册组件(局部)
			components:{
				student
			}
		})

school组件就是一个VueComponent构造函数,我们不需要利用 new VueComponent(options)来创建实例,因为Vue解析的时候会自动帮我们创建实例对象。

每次调用Vue.extend,返回的都是一个全新的VueComponent。即返回的是一个全新的构造函数

补充javascript中的原型对象

1、JavaScript 中所有的对象都有一个内置属性,称为它的 prototype(原型)

2、原型是一个对象,它是其他对象的模板或蓝图。

3、故原型对象也会有它自己的原型,逐渐构成了原型链

4、当一个对象试图访问一个属性或方法时,如果在该对象自身没有找到,JavaScript 会沿着原型链向上查找,直到找到对应的属性或方法,或者达到原型链的顶端 null 为止。

5、prototype(原型对象)的 __proto__,它指向该对象的原型对象

尝试一下你能否理解下面这句话,如果理解那你这部分应该就没问题

实例对象的隐式原型对象就是其构造函数显式原型对象的值。

内置关系

 1.一个重要的内置关系:VueComponent.prototype.__proto__ === Vue.prototype

左半部分对应黄色链条所指对象

右半部分对应Vue的原型对象

 2.为什么要有这个关系:让组件实例对象(vc)可以访问到 Vue原型上的属性、方法。

两个构造函数的this对象

我们知道在Vue2中我们会用到this这个关键字。

(1).组件配置中:

data函数、methods中的函数、watch中的函数、computed中的函数 它们的this【VueComponent实例对象】。

(2).new Vue(options)配置中:

data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是【Vue实例对象】。


http://www.kler.cn/a/534350.html

相关文章:

  • 基于直觉的理性思维入口:相提并论的三者 以“网络”为例
  • PyQt6/PySide6 的 QMainWindow 类
  • Leetcode面试高频题分类刷题总结
  • [paddle] 矩阵相关的指标
  • 基于“蘑菇书”的强化学习知识点(五):条件期望
  • 使用 Axios 获取用户数据并渲染——个人信息设置
  • Docker深度解析:Docker Compose
  • 巧用 DeepSeek,让 Excel 数据处理更高效
  • Springboot项目编写测试单元步骤
  • 北大AGI与具身智能评估新范式!Tong测试:基于动态具身物理和社会互动的评估标准
  • 【go语言】protobuf 和 grpc
  • mixin
  • STM32 串口收发数据包
  • 基于springboot+vue的青少年心理健康教育网站的设计与实现
  • Qt跨屏窗口的一个Bug及解决方案
  • FRP通过公网IP实现内网穿透
  • 日期选择控件,时间跨度最大一年。
  • springboot停车场管理系统设计与实现
  • 【高级篇 / IPv6】(7.2) ❀ 04. 在60E上配置ADSL拨号宽带上网(IPv4) ❀ FortiGate 防火墙
  • SQL 秒变三线表 sql导出三线表
  • Android studio ternimal 中gradle 指令失效(gradle环境变量未配置)
  • 表格文字的版面分析,PHP语言实现表格识别功能
  • 力扣hot100-双指针
  • 挑战项目 --- 微服务编程测评系统(在线OJ系统)
  • oracle 基础语法复习记录
  • 信息学奥赛一本通 2101:【23CSPJ普及组】旅游巴士(bus) | 洛谷 P9751 [CSP-J 2023] 旅游巴士