0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vue入门之组件的介绍

jf_78858299 来源:CSDN 作者:一只楠喃 2023-02-06 16:03 次阅读

7.组件

7.1什么是组件

组件是可复用的 Vue 实例,且带有一个名字

在大型应用开发的时候,页面可以划分成很多部分。往往不同的页面,也会有相同的部分。例如:头部导航、尾部信息等模块。
但是如果每个页面都独自开发,这无疑增加了我们开发的成本。所以我们会把页面的不同部分拆分成独立的组件,然后在不同页面就可以共享这些组件,避免重复开发。

7.2组件分类

组件的作用域分为两种:全局组件 和 局部组件。

全局组件:在所有的Vue实例中都可以使用

局部组件:只有在注册了组件的Vue实例中才可以使用

7.2.1全局组件

使用 Vue.component 定义的组件为全局组件,在所有的 Vue 实例中都可以使用。

比如以下代码中定义了一个全局组件,这个组件在两个Vue实例中都可以使用:

语法

Vue.component("",{

template: ``, // 定义html部分,要求有一个根标签

data() { // 定义数据部分

return {

}

},

})

data: function () {
    return {
      name: "jack"
    }
  }
})

//下面两个实例都可以使用全局组件
new Vue({
  el: '#app1'
});

//下面两个实例都可以使用全局组件
new Vue({
  el: '#app2'
});

7.2.2局部组件

局部组件是指只能在注册了该组件的 Vue 实例中才可以使用。(先需要注册才能用)

局部组件的定义只是定义一个组件对象:

局部组件的定义只是定义一个组件对象:

var 组件名 = { … }

在需要使用这个组件的Vue中注册组件

const app = new Vue({

components:{

组件名:组件对象

}

})

局部组件使用实例:

var hello = {
  template: '
您好!现在是在使用子组件
'
, }; //下面两个实例都可以使用全局组件 new Vue({ el: '#app1', components:{ "MyHello":hello } });

7.3组件自定义属性

7.3.1什么是组件属性?

什么是组件属性?比如我们在使用img标签时, src就是属性。如果我们把img看做一个组件的话,src就是这个组件的属性。

总结:组件属性用于父组件向子组件传递数据。

7.3.2定义属性

当需要为组件设置属性时,我们需要先在定义组件时使用 props 来设置这个组件上所有属性的名字:

Vue.component(’…’,{

props:[属性名字数组]

})

定义了组件属性之后,在组件中就可以像使用一个普通数据一样使用属性:

Vue.component('MyNav', {
  props: ['welcome'],
  template: '
欢迎您,游客! {{welcome}}
'
}) //下面两个实例都可以使用全局组件 new Vue({ el: '#app1' });

7.3.4组件事件

  • 1)原生事件

    当需要在组件上绑定 JS 中原生的事件时,必须要添加 .native 修饰符,否则该事件是无法触发的。

    您好

Vue.component('MyNav', {
  props: ['welcome'],
  template: ''
})
//下面两个实例都可以使用全局组件
new Vue({
  el: '#app1',
  data:{
    txt:"绑定数据到属性"
  },
  methods:{
    hello:function(){
      alert("组件事件");
    }
  }
});
  • 2 自定义事件

    除了原生的事件外,还可以为组件添加自定义的事件,通过自定义的事件,子组件可以向父组件传递消息

在这里插入图片描述

  • 在组件中我们可以使用 emit 触发一个事件,这个事件的名字是我们自己定义的

    定义方法如下:声明事件名称

    this.$emit('事件名')

    在使用这个组件时,就可以为这个新的事件名绑定一个事件:

    或者:

    在这里插入图片描述

//下面两个实例都可以使用全局组件
new Vue({
  el: '#app1',
  methods: {
    todo: function () {
      console.log('todo组件中发表了新的todo')
    }
  }
});

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发
    +关注

    关注

    0

    文章

    370

    浏览量

    40837
  • 组件
    +关注

    关注

    1

    文章

    512

    浏览量

    17819
  • vue
    vue
    +关注

    关注

    0

    文章

    58

    浏览量

    7841
收藏 人收藏

    评论

    相关推荐

    Proteus基础入门教程 Proteus界面功能介绍及常用操作

    Proteus基础入门教程 Proteus界面功能介绍及常用操作
    发表于 09-27 22:35

    Linux搭建Vue开发环境

    本文介绍在Linux环境下从零开始搭建Vue开发环境的整个过程,包括vue的安装,webstorm 安装配置,devtools的安装。
    发表于 07-24 06:20

    vue插槽是什么

    vue踩坑插槽理解(slot)
    发表于 08-14 14:12

    vue组件mounted生命周期钩子函数的用法

    vue组件mounted生命周期开发疑惑解答
    发表于 11-11 09:24

    vue中会用的插件介绍

    vue:相关插件介绍
    发表于 03-17 11:30

    VUE组件回到顶部

    VUE组件 - 回到顶部
    发表于 05-26 13:54

    Vue中父组件与子组件之间的数据传递

    Vue中父组件vue实例)与子组件(component)之间的数据传递
    发表于 06-01 17:28

    基于TypeScript实现Vue3.0指令组件拖拽

    最近在用vue3重构后台的一个功能。一个弹窗组件,弹出一个表单。然后点击提交。早上运维突然跑过来问我,为啥弹窗挡住了下边的表格的数据,我添加的时候,都没法对照表格来看了。你必须给我解决一下。我参考了
    发表于 11-04 06:58

    vue全局变量的设置与在组件中修改全局变量的方法?

    vue全局变量的设置与在组件中修改全局变量的方法
    发表于 11-06 06:43

    关于vue如何去水印的解决方法的介绍

    很多人都懂一些简单的电脑系统问题的解决方案,但是vue怎么去水印的解决思路却鲜为人知,小编前几天就遇到了vue怎么去水印的问题,于是准备整理一些vue怎么去水印的解决思路,其实只需要按照1:打开
    发表于 03-24 17:33 3417次阅读

    华为开发者HarmonyOS零基础入门:UI组件设计开发实践

    华为开发者HarmonyOS零基础入门:UI组件设计开发实践图库应用介绍,应用数据加载显示模型图片加载渲染功能快速在其他应用上。
    的头像 发表于 10-23 10:58 1671次阅读
    华为开发者HarmonyOS零基础<b class='flag-5'>入门</b>:UI<b class='flag-5'>组件</b>设计开发实践

    Vue入门Vue的生命周期

    .生命周期 4.1生命周期是什么 Vue的生命周期, 就是Vue实例从创建到销毁的过程.
    的头像 发表于 02-06 16:16 857次阅读
    <b class='flag-5'>Vue</b><b class='flag-5'>入门</b><b class='flag-5'>Vue</b>的生命周期

    Vue入门之事件操作

    事件修饰符 vue 通过事件修饰符对js事件进行细节控制。
    的头像 发表于 02-06 16:26 701次阅读
    <b class='flag-5'>Vue</b><b class='flag-5'>入门</b>之事件操作

    Vue入门Vue定义

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 Vue 的核心库只关注视图层,也就是只处理页面。 Vue提供的一套JS框架,通常称为
    的头像 发表于 02-06 16:41 1078次阅读
    <b class='flag-5'>Vue</b><b class='flag-5'>入门</b><b class='flag-5'>之</b><b class='flag-5'>Vue</b>定义

    简单介绍一下Vue中的响应式原理

    自从 Vue 发布以来,就受到了广大开发人员的青睐,提到 Vue,我们首先想到的就是 Vue 的响应式系统,那响应式系统到底是怎么回事呢?
    的头像 发表于 03-13 10:11 743次阅读