Vue知识点总结(9)——局部组件的创建和使用(超级详细)

news/2024/7/10 2:41:46 标签: vue, javascript, 前端, html

为什么要组件化开发?

有时候页面代码量太大,逻辑太多或者同一个功能组件在许多页面均有使用,维护起来相当复杂,这个时候,就需要组件化开发来进行功能拆分、组件封装,已达到组件通用性,增强代码可读性,维护成本也能大大降低。
组件化很大程度上降低系统各个功能的耦合性,并且提高了功能内部的聚合性。这对html" title=前端>前端工程化及降低代码的维护来说,是有很大的好处的,耦合性的降低,提高了系统的伸展性,降低了开发的复杂度,提升开发效率,降低开发成本。

组件有什么特性?

  • 专一性 一个组件只专注做一件事,且把这件事做好。
  • 可配置性 一个组件,要明确它的输入和输出分别是什么,要做可配置性,最基本的方式是通过属性向组件传递配置的值,而在组件初始化的生命周期内,通过读取属性的值做出对应的显示修改。还有一些方法,通过调用组件暴露出来的函数,向函数传递有效的值;修改全局
    CSS样式;向组件传递特定事件,并在组件内监听该事件来执行函数等。
  • 标准性 任何一个组件都应该遵守一套标准,可以使得不同区域的开发人员据此标准开发出一套标准统一的组件。
  • 复用性 任何一个组件应该都是一个可以独立的个体,可以使其应用在不同的场景中。

在Vue中,组件化开发是核心的支柱和特性。Vue分别提供了局部和全局组件供使用。

今天我们说一下局部组件的创建和使用

html"><div id="app">
    <App></App>
</div>
html" title=javascript>javascript"><script>
    // 注意:在组件中这个data必须是一个函数,返回一个对象
    const App = {
        data(){
            return {
                msg:'我是App组件'
            }
        },
        template:`
        <div>
            <h3>{{msg}}</h3>
            <button @click='handleClick'>按钮</button>    
        </div>
        `,
        methods: {
            handleClick(){
                this.msg = '我被改变了'
            }
        }
    
    }
    new Vue({
        el:'#app',
        data:{

        },
        components: {
            // 挂载子组件
            App
        }
    });
</script>

局部组件的创建方式是const 组件名 = { } 的形式。
{ }内的代码格式和创建Vue实例中的形式很类似。
但是需要注意的是,我们在创建Vue实例的时候,实例内的data是data:{ }的格式,但是组件中的data必须是一个函数,返回一个对象,data(){ return{ } }。 其他的属性和Vue实例中的基本一致。
最重要的就是这个template属性,我们可以把需要封装的html内容放到这里,在例子中,我写了一个h3标签和一个button标签,并且给button绑定了点击事件,事件的内容我们依然写到了methods中。
这样就完成了一个基本的组件的封装。
组件我们已经封装好了,下面要做的事情就是挂载把封装好的组件挂载到我们需要的Vue实例上components就是实例中挂载组件的属性,组件的名字要和创建时保持一致,例子中我写的App。

到现在为止我们已经完成了组件的封装和挂载,接下来就是使用了。使用的方式很简单,就像我们使用其它组件时一样,<组件名></组件名>

然后我们看一下效果:
在这里插入图片描述
在这里插入图片描述
在页面的div中,我们只写了一个App标签,但是渲染到页面上的有h3标签和button标签,我们是通过自定义组件来完成的,这就是组件的意义。

然后我们点一下按钮,因为我们在封装组件时,也写了点击事件的内容,看看是否奏效。
在这里插入图片描述
没有问题。
这样我们就完成了局部组件的封装、挂载和使用。

有微信小程序课设、毕设需求联系个人QQ:505417246

关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、html" title=前端>前端、uni-app、全栈、Nodejs、Python等实战学习资料
最新最全的html" title=前端>前端知识总结和项目源码都会第一时间发布到微信公众号,请大家多多关注,谢谢!

在这里插入图片描述


http://www.niftyadmin.cn/n/1576600.html

相关文章

JS如何删除数组中指定的内容

如何删除数组中的指定内容&#xff1f; 主要是对splice函数的应用&#xff0c;这个函数很强大&#xff0c;用处非常多。 我们分两种情况处理问题&#xff1a; ①删除数组中的一个指定元素。 array数组中只有一个值为1的元素&#xff0c;我们的任务就是删除这个值为1的元素。 va…

Activiti实战. 1.1什么是Activiti

1.1什么是Activiti 大家第一次接触Activiti的时候不理解它为什么要叫这个名字&#xff0c;从词典中也没有找到对它的解释。可能有人会想到另外一个单词Activity&#xff08;活动&#xff09;&#xff0c;与Activiti仅一个字母之差。在工作流方面有些基础的读者或许能很快理解&a…

Vue知识点总结(10)——全局组件的创建和使用(超级详细)

在上一期我们已经讲解了组件的概念和作用&#xff0c;还有局部组件的封装、挂载和使用。 这期我们说一下全局组件的创建和使用&#xff0c;很简单。 <div id"app"><Vheader></Vheader> </div><script>Vue.component(Vheader,{data ()…

《图数据库(第2版)》导读

前言 图数据库&#xff08;第2版&#xff09;图数据库应对的是当今一个宏观商业世界的大趋势&#xff1a;凭借高度关联的数据中复杂而动态的联系获得洞察力并赢得竞争优势。无论我们想了解的是客户之间的联系&#xff0c;电话或数据中心网络元素之间的联系&#xff0c;娱乐产品…

《Linux系统编程(第2版)》——1.2 API和ABI

本节书摘来自异步社区《Linux系统编程&#xff08;第2版&#xff09;》一书中的第1章&#xff0c;第1.2节&#xff0c;作者&#xff1a;【美】Robert Love著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 1.2 API和ABI 程序员都希望自己实现的程序能够一直…

Vue知识点总结(11)——组件通信-父传子(超级详细)

前两期我们简单了解了一下Vue中局部组件和全局组件的创建和使用。 组件创建之后&#xff0c;很重要的一个环节就是通信&#xff0c;一个项目中肯定是有非常多的组件的&#xff0c;它们肯定要能够互相联系&#xff0c;共同收集数据、处理数据、传递数据。 这期我们说一下组件通信…

《Node应用程序构建——使用MongoDB和Backbone》一2.2 Express

本节书摘来自异步社区《Node应用程序构建——使用MongoDB和Backbone》一书中的第2章&#xff0c;第2.2节&#xff0c;作者【美】Mike Wilson&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 Express Node应用程序构建——使用MongoDB和Backbone本书中应用…

Vue知识点总结(12)——组件通信-子传父(超级详细)

在上一期中&#xff0c;我们说了什么是组件通信&#xff0c;并且详细讲解了一下组件通信中的父传子。 既然存在父组件向子组件传值&#xff0c;那必然存在子组件向父组件传值。 这期我们就说一下组件通信中的子传父。 <div id"app"><App></App><…