Vue2 第十二节 Vue组件化编程(一)

news2024/11/15 18:30:28

1.模块与组件,模块化与组件化概念

2. 非单文件组件

3. 组件编写注意事项

4. 组件的嵌套

一. 模块与组件,模块化与组件化

传统方式编写存在的问题

(1)依赖关系混乱,不好维护

(2)代码的复用率不高 

组件方式编写应用

1.1 模块

① 模块:向外提供特定功能的js程序,一般就是一个js文件

② 为什么要引入模块化:因为按照传统方式进行编程,js文件很多,引入逻辑很复杂

③ 引入模块化的作用:简化js的编写,复用js,提高js的运行效率

1.2 组件

① 定义:用来实现局部(特定)功能效果的代码集合

② 为什么要引入组件:因为一个界面往往功能都比较多,也比较复杂

1.3 模块化和组件化

① 模块化:当应用中的js都以模块来编写,那么这个应用就是一个模块化的应用

② 组件化:当应用中的功能都是多组件的方式来编写的(以功能点来拆分),那这个应用就是一个组件化的应用

二. 非单文件组件

2.1 概念理解

① 非单文件组件:一个文件中包含n个组件   xxx.html

② 单文件组件:一个文件中只有一个组件   xxx.vue (开发中常用)

2.2 编码示例

① Vue中使用组件的三大步骤

     (1)定义组件(创建组件)

     (2) 注册组件

     (3)使用组件(写组件标签)

② 创建组件示例:使用Vue.extend(options)创建,其中options和new Vue(options)传入的options几乎一样

注意:

  • el不要写,最终所有的组件都要经过一个vm的管理,由vm中的el属性决定服务哪个容器
  • data必须写成函数:避免组件被复用,数据存在引用关系
  • 使用template配置项将结构写进去,注意所有结构需要包在一个div中

③ 注册组件

注册组件有两种方式:全局注册和局部注册

  • 全局注册:靠Vue.components('组件名', 组件)

 

  • 局部注册 :靠new Vue的时候传入components选项(使用的比较多)

④ 使用组件: <school></school>  在模板中使用组件标签

三. 组件编写注意事项

3.1.关于组件名

  • 由一个单词组成

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

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

  • 多个单词组成

      ① 第一种写法(kebab-case命名)my-school,但是在使用的时候需要用引号包起来

      ② 第二种写法:(CamelCase命名)MySchool(必须在脚手架环境下才能运行)

注意:

  • 组件名尽可能回避HTML中已有的元素名称,h2或者H2都不行
  • 可以使用name配置项指定组件在开发者工具中呈现的名字

注册的时候用的名字是School

 在模板中使用的时候也得用这个名字

 上面name的配置项修改的是开发者工具中呈现的名字

 3.2 组件标签

(1)第一种写法:<school></school>

(2)第二种写法(自闭合):<school/>  这种写法必须在脚手架环境下才可以,如果不在脚手架环境,会导致后续组件不能渲染

3.3 组件简写形式

  ①  简写形式

 const s = {
        name:'atguigu',
        // 组件定义时不要写el配置项
        // el:'#root',
        template:`<div><h2>学校名称:{{schoolName}}</h2>
    <h2>学校地址: {{address}}</h2>
    <button @click="showName">点我提示学校名</button></div>`,
        data() {
            return {
                schoolName:'尚硅谷',
                address:'北京昌平'
            }
        },
        methods: {
            showName() {
                alert(this.schoolName)
            }
        },
    }

② 完整形式

        const s = Vue.extend({
            name: 'atguigu',
            // 组件定义时不要写el配置项
            // el:'#root',
            template: `<div><h2>学校名称:{{schoolName}}</h2>
        <h2>学校地址: {{address}}</h2>
        <button @click="showName">点我提示学校名</button></div>`,
            data () {
                return {
                    schoolName: '尚硅谷',
                    address: '北京昌平'
                }
            },
            methods: {
                showName () {
                    alert(this.schoolName)
                }
            },
        })

四.组件的嵌套

(1)定义app组件,app组件中包含school组件和hello组件

 (2)定义school组件,school组件包含student

 (3)student组件

(4) hello组件

 

 vm管理app, app管理所有组件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/818412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SWAT-MODFLOW地表水与地下水耦合

目录 第一讲 模型原理剖析 第二讲 QGIS高级操作 第三讲 QSWATMOD操作 第四讲 数据制备 第五讲 基于CUP的率定验证 第六讲 结果分析 第七讲 控制措施效果模拟 第八讲 土地变化情景模拟 第九讲 气候变化情景模拟 更多推荐 耦合模型被应用到很多科学和工程领域来改善模型…

谷歌: 安卓补丁漏洞让 N-days 与 0-days 同样危险

近日&#xff0c;谷歌发布了年度零日漏洞报告&#xff0c;展示了 2022 年的野外漏洞统计数据&#xff0c;并强调了 Android 平台中长期存在的问题&#xff0c;该问题在很长一段时间内提高了已披露漏洞的价值和使用。 更具体地说&#xff0c;谷歌的报告强调了安卓系统中的 &quo…

ChatGLM-6B VS 昆仑万维天工对比

下面进行昆仑万维天工与ChatGLM-6B内测结果进行对比&#xff0c;其中ChatGLM-6B的结果来自https://github.com/THUDM/ChatGLM-6B&#xff0c;假设ChatGLM-6B的结果是可靠的&#xff0c;那么为了公平&#xff0c;昆仑万维天工&#xff08;https://tiangong.kunlun.com/interlocu…

OSG3.6.5 + VS2017前期准备及编译

OSG3.6.5 VS2017前期准备及编译 1、前期准备 1.1、osg稳定版本源码 Stable releases (openscenegraph.com) 1.2、osg依赖项 Dependencies (openscenegraph.com) 1.3、osg测试及演示数据 Data Resources (openscenegraph.com) 1.4、安装doxygen和Graphviz&#xff08;用…

组件化、跨平台…未来前端框架将如何演进?

前端框架在过去几年间取得了显著的进步和演进。前端框架也将继续不断地演化&#xff0c;以满足日益复杂的业务需求和用户体验要求。从全球web发展角度看&#xff0c;框架竞争已经从第一阶段的前端框架之争&#xff08;比如Vue、React、Angular等&#xff09;&#xff0c;过渡到…

SolidWorks二次开发---简单的连接solidworks

创建一个.net Framework的应用&#xff0c;正常4.0以上就可以了。 打开nuget包管理 在里面搜索paine 在版中选择对应的solidworks年份开头的&#xff0c;进行安装。 安装完之后 : 同时选中下面两个dll,把嵌入操作类型改为false 然后在按钮的单击事件中输入: Connect.Crea…

使用powershell找回丢失的RDCManage密码

内网的一台服务器上的装机默认用户密码忘记了&#xff0c;但是好在别的电脑上使用RDCMan&#xff08;Remote Desktop Connection Manager&#xff09;连接过这台服务器&#xff0c;并且保存了密码。于是经过一番折腾&#xff0c;最后把密码找回来了&#xff1a; 最后成功的powe…

【ChatGPT】ChatGPT是如何训练得到的?

前言 ChatGPT是一种基于语言模型的聊天机器人&#xff0c;它使用了GPT&#xff08;Generative Pre-trained Transformer&#xff09;的深度学习架构来生成与用户的对话。GPT是一种使用Transformer编码器和解码器的预训练模型&#xff0c;它已被广泛用于生成自然语言文本的各种…

抓紧收藏,Selenium无法定位元素的几种解决方案

01、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位&#xff0c;对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法&#xff1a; driver.switch_to.frame(id/name/obj) switch_to.frame()默认可以直接取表单的id或name属性。如果没有可用的id和…

基于量子同态的安全多方量子求和加密

摘要安全多方计算在经典密码学中一直扮演着重要的角色。量子同态加密(QHE)可以在不解密的情况下对加密数据进行计算。目前&#xff0c;大多数协议使用半诚实的第三方(TP)来保护参与者的秘密。我们使用量子同态加密方案代替TP来保护各方的隐私。在量子同态加密的基础上&#xff…

Day49 算法记录|动态规划16 (子序列)

这里写目录标题 583. 两个字符串的删除操作72. 编辑距离总结 583. 两个字符串的删除操作 这道题求得的最小步数&#xff0c;是这道题的变种 M i n ( 步数&#xff09; s t r 1. l e n g t h s t r 2. l e n g t h − 2 ∗ ( M a x ( 公共字符串长度&#xff09; ) Min(步数…

子域名收集工具OneForAll的安装与使用-Win

子域名收集工具OneForAll的安装与使用-Win OneForAll是一款功能强大的子域名收集工具 GitHub地址&#xff1a;https://github.com/shmilylty/OneForAll Gitee地址&#xff1a;https://gitee.com/shmilylty/OneForAll 安装 1、python环境准备 OneForAll基于Python 3.6.0开发和…

Linux系统安装Nginx(保姆级教程)

目录 一、环境准备 二、开始安装 2.1、解压Nginx文件 2.2、编译安装 2.3、启动Nginx 2.4、安装成系统服务&#xff08;脚本&#xff09; 2.5、常见问题 本机如何访问虚拟机中的Nginx&#xff1f; 编译安装的过程中出现如下几种警告错误 一、环境准备 系统&#xff1a…

教程|如何用 Docker/K8s 快速部署 StarRocks 集群

云原生是一种现代化的软件开发和部署方法论。相较于传统的应用开发和部署方式&#xff0c;云原生带来了显著的优势&#xff0c;包括弹性伸缩、应用程序可移植性、高可靠性和自动化部署与管理等方面&#xff0c;从而极大地提升了成本效益和开发效率。 StarRocks 从 3.0 版本开始…

wms三代电子标签操作指导

一、服务器使用 V1.4基站已经内置服务程序&#xff0c;无需搭建服务&#xff1b;可跳至第1.4部分 1、服务器搭建 安装mysql5.7, 创建db_wms数据库并导入原始数据库文件 安装jdk1.8, 配置java环境变量 下载tomca8.0, 部署wms.war到tomcat, 并启动tomcat 2、下载资源 Wind…

dflow工作流使用1——架构和基本概念

对于容器技术、工作流等概念完全不懂的情况下理解dflow的工作方式会很吃力&#xff0c;这里记录一下个人理解。 dflow涉及的基本概念 工作流的概念很好理解&#xff0c;即某个项目可以分为多个步骤&#xff0c;每个步骤可以实现独立运行&#xff0c;只保留输入输出接口&#x…

以科技创新引领短交通行业发展,九号公司重磅新品亮相巴塞罗那MWC

2月27日&#xff0c;以“时不我待(VELOCITY) - 明日科技&#xff0c;将至已至”为主题的2023世界移动通信大会&#xff08;Mobile World Congress&#xff0c;以下简称MWC&#xff09;在西班牙巴塞罗那举办&#xff0c;全球创新短交通领军企业九号公司参加了大会。现场&#xf…

学习记录——DSConv

Dynamic Snake Convolution based on Topological Geometric Constraints for Tubular Structure Segmentation ICCV 2023 用于管状结构分割的动态蛇形卷积 仍存在一些复杂的领域&#xff0c;大模型还未能够很好的覆盖&#xff08;也许只是时间问题&#xff09;。例如伪装目标…

【MySQL】模具更新方案

系列文章 C#底层库–MySQLBuilder脚本构建类&#xff08;select、insert、update、in、带条件的SQL自动生成&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129179216 C#底层库–MySQL数据库操作辅助类&#xff08;推荐阅读&#xff0…

接口测试用例设计:常见问题和风险

一、接口测试 接口测试&#xff0c;即对API进行测试。 接口测试过程容易出现的典型问题&#xff1a; (1) 传入参数处理不当&#xff0c;导致程序奔溃 (2) 类型溢出&#xff0c;导致数据读出和写入不一致 (3) 因对象权限未进行校验&#xff0c;可以访问其他用户的敏感信息 …