【Vue】组件化编程

本文详细介绍了Vue的组件化编程,包括单文件组件和非单文件组件的使用流程,组件命名规范,VueComponent的原理,以及Vue与VueComponent的内在关系。组件化编程能提高代码的可维护性和复用性,降低依赖混乱。文章还提到了单文件组件的创建与注册,以及在实际项目中的应用。
摘要由CSDN通过智能技术生成

定义
实现应用中局部功能代码和资源的集合
为什么要用组件化编程?
传统方式编写:依赖关系混乱,不好维护,且代码复用率不高
模块化编写:只关注解决js,复用js,简化js的编写与效率
组件方式编写:好维护、复用率更高、提高运行效率

在组件出现之前,我们开发基本都是用html、js、css,

1 组件

单文件组件

一个文件中只有1个组件

非单文件组件

一个文件中包含有n个组件

1.1 组件使用流程

1 创建组件

使用Vue.extend(options)创建,其中options和new Vue(options)时传入的那个options几乎一样,但也有点区别:

1 不写el。最终所有的组件都要经过一个vm的管理,由vm中的el决定服务哪个容器
2.data必须写成函数。避免组件被复用时,数据存在引用关系,data是对象会导致,组件值改变会影响另一个组件的值

使用template可以配置组件结构。
在Vue2官网中中也明确规定,组件的data必须是一个函数
在这里插入图片描述

const School = Vue.extend({
   
        name:'School', // 组件名
        template:`<div>School----</div>`,
        data(){
   
            return{
   }
        },
        methods:{
   }
})

2 注册组件

const vm = new Vue({
   
        el: '#root',
        components:{
   School},
        data() {
   
            return {
   
            }
        },
        
    })

3 使用组件

<div id="root">
   <School></School>
</div>

1.2 组件细节点

1.关于组件名:

  • 单个单词组成:
    第一种写法(首字母小写):school
    第二种写法(首字母大写):Schoo1
  • 多个单词组成:
    第一种写法(kebab-case而名): my-school(不建议如此)
    第二种写法(CamelCase命名): Myschool (需要Vue脚手架支持)

(1).组件名尽可能回避HTML中已有的元素名称,例如: h2、H2都不行。
(2).可以使用name配置项指定组件在开发者工具中呈现的名字。
2.关于组件标签:
第一种写法: < school></ schoo1>
第二种写法: < school/> (不用使用脚手架时,< schoo1/>会导致后续组件不能渲染)
3 简写方式:
const school = Vue.extend(options) 可简写为: const school = options

1.3 关于VueComponent

1.school组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的
2.只需要写< school/>或< school></ school>,Vue解析时会帮我们创建school组件的实例对象。
即Vue帮我们执行的:new VueComponent(options)
3.特别注意: 每次调用Vue.extend,返回的都是一个全新的VueComponent!!!
4.关于this指向:

(1).组件配置中:data函数、methods中的函数、watch中的函数、computed中的函数<

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的小学究

愿你有所收获

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值