0

0

vue组件有什么好处

青灯夜游

青灯夜游

发布时间:2022-07-20 19:06:29

|

4976人浏览过

|

来源于php中文网

原创

vue组件的好处:1、组件是独立和可复用的代码组织单元,组件系统是vue核心特性之一,它让开发者使用小型、独立和通常可复用的组件构建大型应用;2、组件化开发能大幅度提高应用开发效率、测试性、复用性等;3、能让web前端代码实现“高内聚”和“低耦合”,使得前端开发的过程变成搭积木的过程。

vue组件有什么好处

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

Vue的单页面开发其实很简单又很抽象,单页面是指唯一的Vue示例,也就是main.js里的new Vue({});

那么多页面的效果是怎么实现的呢?这就依赖于组件化开发,每一个子页面都由多个组件构成,在url改变时刷新并渲染不同的组件群,这就达到了多页面的效果,在vue中如何实现url改变其实就是路由了。

Vue组件化

什么是组件化

立即学习前端免费学习笔记(深入)”;

当我们遇到复杂问题时,很难一次性搞定所有问题,所以这时需要把问题拆解,把小问题都解决后综合起来就能得到这个问题的解决方案,听起来很熟悉吧!其实在动态规划中就是这种思想了,只不过时最优解和解决方案的区分。

组件化也是这种解决问题的思路,当一个项目中的功能逻辑特别复杂时,我们很难一次性完成所有逻辑交互,因为容易发生冗余或回调地狱,一旦某一部分出错,很难追究到哪行代码出现问题。同时一个人的精力是有限的,为了减轻个人的压力,将问题分为小的功能模块,既可以减少管理和维护该界面的成本,也可以适合团队合作。

但其实Vue的前端开发不需要很多人,因为它是轻量级的,所以实际项目中只需要美工人员把设计好的原型发给一两个前端开发人员就行了,至于为什么需要这么少的开发人员,很大程度上因为Vue的组件化开发让业务逻辑更清晰。

vue组件化思想

  • 组件化的思想让我们能够开发出一个个独立且可复用的小组件来构造我们的应用。

  • 每一个应用(功能)都可以抽象成一个组件树。

1.png

  • 尽可能的将页面拆分成小且可复用的组件。这样让我们的代码更加方便组织和管理,并且扩展性也更强。

vue组件化的好处

魔法映像企业网站管理系统
魔法映像企业网站管理系统

技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作

下载

1、组件是独立和可复用的代码组织单元。组件系统是vue核心特性之一,它使开发者使用小型、独立和通常可复用的组件构建大型应用;

2、组件化开发能大幅度提高应用开发效率、测试性、复用性等;

3、能让 web 前端代码实现“高内聚 低耦合”,使得前端开发的过程变成搭积木的过程。

组件的使用

原理

  • 组件的使用分三步:
    • 创建组件构造器
    • 注册组件
    • 使用组件
  • 创建组件构造器:
    • 调用const mycomponent = Vue.extend({template : ``})创建构造器。
    • template后的引号里写相应的html代码,其实这个template就是.vue文件中的template(不清楚的可以去Vue文件构成)。
    • :后的单引号其实是ES6的语法,众所周知双引号内的字符串等内容进行换行需要写特殊字符,而在单引号间的内容,里面的代码在使用时是不会改变代码的格式的,例如:
      在这里插入图片描述
  • 注册组件:
    • 调用Vue.component(‘自己起的组件名’,mycomponent),第一个参数是自己起的组件名,第二个参数是你在创建组件构造器的时候的const变量。
      在这里插入图片描述
  • 使用组件:
    • 在上方的template里使用
      在这里插入图片描述

实际开发中的使用-父子组件

  • 实际开发中组件的使用非常简单,每个组件都是一个.vue文件,直接引入并声明组件即可以使用。

  • 第一步:创建一个.vue文件,我这里在views文件夹下创建一个Home.vue文件2.png

  • 第二步:在需要用到这个组件中引入Home文件,我这个例子是在App.vue中引入了Home.vue,大家实际开发中请自行引入。
    3.png
    在这里插入图片描述

  • 第三步:在App.vue中注册该组件,这个components的属性我在前面说过,里面的组件就是该vue文件的子组件,父子关系形成,在这里一个父亲可以有多个儿子噢!!!
    在这里插入图片描述

  • 第四步:使用该组件,也就是将Home.vue的内容显示在App.vue中
    在这里插入图片描述

父子组件传递数据

  • 通过props向子组件传递数据。
  • 通过事件向父组件发送发送消息。
    4.png

父传子-props用法

  • 在子组件中,使用props来声明需要从父组件接收的数据。
  • props和data、methods、computed同级,里面存的就是父组件传来的数据。
  • props分为两种:
    • 第一种:对象,对象可以设置传递时的类型,也可以设置默认值等。
    • 第二种:字符串数组形式,数组中每个字符串就是传递的数据的名字。
  • 第一种情况:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    • 通过之前的学习,大家应该能看懂这两张图,第一张图片的语句是写在.vue文件中的template中的,而这个子组件的名称应该是patientlist,而向子组件传递的信息其实就是:weizhen="notfin",在第二张图片中可以发现,notfin是个数组,那么weizhen是什么??看第三张图片,我在props里定义了一个对象!这个对象的名字就是weizhen,所以这个weizhen就是父组件把向子组件传递的数据封装了一个名字!
    • 这样就实现了父组件向子组件传递数据的第二种方式,怎么动态监控父组件传来的数据是否有变化并进行刷新后期会讲!
  • 第二种情况:
    • 用上面的前两张图,其实变化的就是接收的方式:
      在这里插入图片描述
    • 这样也能获取到相应的数据,但其实我喜欢用第一种,因为规定了类型和默认值后能让代码更容易读懂。

子传父-this.$emit()自定义事件

  • 子传父使用this.$emit(‘自己起的名称’,data)
  • 这个方法有两个参数,第一个是自己起的名字,例如上面的weizhen;第二个参数是你要传递的数据,这个数据可以是通过子组件中的函数处理好的数据,也可以是data中定义的数据。这样父组件就可以获取到子组件中返回的结果。

父组件直接获取子组件的数据

this.$children

  • 在父组件中的script模块中的methods中,如果想要直接获取子组件的数据可以使用this.$children。

  • 如下图,我们使用$children获取子组件中的message字符串。
    在这里插入图片描述

  • this.$children的缺点:

    • 通过$children访问子组件时,是一个数组类型,访问其中的子组件必须通过索引值。
    • 当子组件过多,我们需要拿到其中一个时,往往不能确定它的索引值,甚至还可能会发生变化。

this.$ref

  • ref是reference-引用的简写。
  • $ref和ref经常搭配使用,使用步骤:
    • 通过ref给某一个子组件绑定一个特定的ID。
    • 通过this.$refs.ID就可以访问到该组件了。
      在这里插入图片描述
      在这里插入图片描述

子组件直接获取父组件的数据-this.$parent

  • 虽然可以通过这种方式直接获取父组件的值,但实际项目开发中不建议使用这种方法,下面说明一下为什么:
    • 首先,子组件不需要很多的数据,子组件只需要自己处理的数据即可,如果申请了过多的数据就提高了耦合度。
    • 其次,在进行不同项目的组件复用时,我们根据需求只用到了这个子组件,如果使用this.$parent方式获取数据,那么父组件中如果没有对应字段就报错了呀!
    • 最后,如果子组件都能随便方位父组件中的数据,那么我们维护起来会非常麻烦,如果后期不需要某个字段,子组件中也要对应修改,会提高维护成本和任务量,同时也是浪费时间。
  • 综上所述:真的不建议使用$parent,但是要了解。

非父子组件之间的数据传递

  • Vue1.x:
    • 使用$dispatch向上派发事件。
    • 使用$broadcast向下广播事件。
  • Vue2.x:
    • 首先取消了Vue1.x中的两个方法。
    • 这个版本使用了中央事件总线,也就是通过中介完成。
    • 这个中介的意思跟数据库中一对多关系的两个表需要一个关系表来防止结构混乱。
  • 经过了一系列的发展和优化,Vuex应运而生,Vuex管理方案是目前Vue的一大核心功能,后面的文章中会单独讲Vuex。

总结

  • 组件是Vue中最为重要的功能之一,在实际开发中要多多利用,如果有可重复使用的组件那就用,毕竟是要偷懒的,要是每次新打一遍对应的代码,那太没意思了!

【相关视频教程推荐:vuejs入门教程web前端入门

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

616

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

656

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

470

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2898

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

506

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

312

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

426

2023.09.01

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

38

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.3万人学习

React 教程
React 教程

共58课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号