Vue 注册组件介绍

news2024/11/17 19:49:43

在这里插入图片描述

Vue组件的基本概念

Vue组件是一种可复用的Vue实例,用于封装可重用的HTML元素、JavaScript代码和CSS样式。它可以让开发者更好地组织和复用代码,使Web应用程序更加可维护和可扩展

Vue组件通常由三部分组成:模板(template)、数据(data)和方法(methods)。

  • 模板:用于定义组件的结构和布局
  • 数据:用于存储组件的状态和属性
  • 方法:用于定义组件的行为和逻辑

以下是一个简单的Vue组件示例:

<template>
  <div>
    <h1>{{ title }}</h1>
    <p>{{ message }}</p>
  </div>
</template>
<script>
export default {
  data() {
    return {
      title: 'Hello Vue',
      message: 'Welcome to vue!'
    }
  }
}
</script>

在上面的示例中,我们定义了一个简单的Vue组件,它包含一个标题和一条消息。在模板中,可以使用Vue的双向数据绑定语法({{ }})来展示数据。

Vue组件的注册

Vue组件需要先进行注册,才能在Vue.js应用程序中使用。

全局注册

全局注册是将组件注册到应用程序的根Vue实例中,可以在整个应用程序中使用该组件。
以下是一个简单的全局注册示例:

import Vue from 'vue'
import MyComponent from './MyComponent.vue'

Vue.component('my-component', MyComponent)

局部注册

局部注册是将组件注册到应用程序中的特定组件中,只能在该组件及其子组件中使用该组件。
以下是一个简单的局部注册示例:

// 父组件
import Vue from 'vue'
import MyComponent from './MyComponent.vue'

export default {
  components: {
    'my-component': MyComponent
  }
}
// 子组件
<template>
  <div>
    <my-component></my-component>
  </div>
</template>

如何使用Vue组件

要在Vue.js应用程序中使用组件,我们可以使用全局注册或局部注册方式。无论是哪种注册方式,都需要在模板中使用组件标签来渲染组件。

以下是一个简单的组件渲染示例:

Copy code
<template>
  <div>
    <my-component></my-component>
  </div>
</template>

在上面的示例中,我们使用标签来渲染一个组件。如果该组件已经注册到应用程序中,那么它将被渲染为该组件的模板。
需要注意的是,Vue.js应用程序中的组件渲染顺序是按照深度优先遍历算法进行的。也就是说,当渲染一个组件时,如果它包含其他组件,那么它将首先渲染其子组件,然后再渲染自己。

组件之间嵌套

首先,实现一个列表项组件

Vue.component('todo-item', {
            props: {
                title: String,
                del: {
                    type: Boolean,
                    default: false,
                },
            },
            template: `
            <li>
                <span v-if="!del">{{title}}</span>
                <span v-else style="text-decoration: line-through">{{title}}</span>
                <button v-show="!del">删除</button>
            </li>
          `,
            data: function() {
                return {}
            },
            methods: {

            },
        })

然后,在列表组件中嵌套列表项

Vue.component('todo-list', {
           template: `
            <ul>
            <!-- 嵌套组件 -->
              <todo-item v-for="item in list" :title="item.title" :del="item.del"></todo-item>
            </ul>
          `,
            data: function() {
                return {
                    list: [{
                        title: '课程1',
                        del: false
                    }, {
                        title: '课程2',
                        del: true
                    }],
                }
            }
        })

完整示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- 参考 mustache -->
        {{message}} {{message+message}}
        <div :id="message"></div>
        <ul>
            <!-- for循环 -->
            <li v-for="item in list">
                <!-- if判断 -->
                <span v-if="!item.del">{{item.title}}</span>
                <span v-else style="text-decoration: line-through;">{{item.title}}</span>
                <!-- 懒加载 -->
                <button v-show="!item.del">删除</button>
            </li>
        </ul>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <Script>
        var vm=new Vue({
            el:"#app",
            data:{
                message:"Hello World",
                list:[
                    {
                        title:"课程",
                        del:false
                    },
                    {
                        title:"课程",
                        del:true
                    },
                ],
            }
        })
    </Script>
</body>
</html>

实现效果:
在这里插入图片描述

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

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

相关文章

NLP实战:快递单信息抽取-基于ERNIE1.0 预训练模型

目录 一、介绍 二、代码 2.1前期准备 2.2加载自定义数据集 2.3数据处理 2.4数据读入 2.5PaddleNLP一键加载预训练模型 2.6设置Fine-Tune优化策略&#xff0c;模型配置 2.7模型训练与评估 ​编辑 2.8模型预测 三、总结 原文&#xff1a; 一、介绍 命名实体识别&…

网易云音乐开发--主页静态页面搭建

如何用VScode来开发小程序 wxml和wxss来高亮小程序 窗口设置 轮播图制作 就是通过swiper来设置轮播图 iconfont字体图标使用 这里要借助阿里的iconfonticonfont-阿里巴巴矢量图标库 找到自己喜欢的图标&#xff0c;添加到购物车 添加到项目 这样就可以统一的管理图标的库 …

Windows环境安装Elasticsearch和Kibana

文章目录 1 Elasticsearch1.1 下载1.2 解压并添加环境变量1.3 访问1.4 cmd命令1.5 中文分词器1.5.1 下载1.5.2 安装1.5.2.1 命令安装1.5.2.2 手动安装1.5.2.3 验证分词 1.6 使用curl批量导入 2 安装 kibana2.1 下载kibana2.2 中文界面2.3 操作索引2.3.1 增加索引2.3.1.1 单条新…

电商--订单支付中存在的问题以及思考

文章目录 前言背景订单支付大致流程订单支付流程中的注意细节防止订单重复创建为何会出现重复创建订单处理措施 掉单导致的重复支付为何会出现这种场景处理措施 已支付流水退款为何会出现这种场景 前言 最近感觉应该把自己在工作中遇到的一些比较有意思的核心流程进行总结以此…

win10远程桌面控制Ubuntu服务器 - 内网穿透实现公网远程

文章目录 前言视频教程1. ubuntu安装XRDP2.局域网测试连接3. Ubuntu安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 转载自远程穿透文章&#xff1a;Windows通过RDP异地远程桌面Ubuntu【内网穿透】 前言 XRDP是一种开源工具&#xff0c;它允许用户通过Windows…

软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)

文章目录 1. 按照测试对象进行划分1&#xff09;界面测试2&#xff09;可靠性测试3&#xff09;容错性测试4&#xff09;文档测试5&#xff09;兼容性测试6&#xff09;易用性测试7&#xff09;软件安装卸载的测试8&#xff09;安全测试9&#xff09;性能测试10&#xff09;内存…

代码随想录算法训练营第五十天| 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

文章目录 123.买卖股票的最佳时机III188.买卖股票的最佳时机IV:star: 123.买卖股票的最佳时机III 至多买卖两次 分清楚动态规划所有状态至关重要&#xff0c;这是求dp数组的前提 和之前买卖股票问题解题思路相似&#xff0c;只是多增加了第二天的状态 总结&#xff1a;买卖股票…

Docker代码环境打包

1. 介绍 Docker是一种开源的容器化平台&#xff0c;它可以在操作系统级别运行应用程序。通过将应用程序及其依赖项封装成一个可移植的容器&#xff0c;Docker使得应用程序可以在任何环境中轻松部署、运行和管理。使用Docker&#xff0c;开发人员可以避免在不同环境中出现的配置…

测试从业第 3 年,我看到了终点......

先说明&#xff0c;今天的内容&#xff0c;是写给想成为高级测试开发、自动化测试专家的人看的&#xff0c;因为&#xff0c;它可能颠覆你的认知。 众所周知&#xff0c;如今无论是大厂还是中小厂&#xff0c;自动化测试基本是标配了&#xff0c;毕竟像双11、618 这种活动中庞…

vue-element-admin入门

vue-element-ui的基本使用 vue-element-admin下载vue-element-admin对接后端接口mock接口信息编写后端接口对接测试移除mock替换接口 vue-element-admin下载 这里下载的是基础模板&#xff0c;要下载完整版的可以去官网下载 # clone the project git clone https://github.co…

leetcode刷题日志4.0

目录 前言&#xff1a; 1.三个数的最大乘积 2.错误的集合 3.机器人能否返回原点 4.最长连续递增序列 5.验证回文串 II 6.交替位二进制数 前言&#xff1a; 五一假期结束了&#xff0c;大家玩的开心吗&#xff1f;不过我们还得回到我们的日常生活学习工作当中&#xff0c;…

X86架构与Arm架构的主要区别分析

​ X86架构和ARM架构是主流的两种CPU架构&#xff0c;X86架构的CPU是PC服务器行业的老大&#xff0c;ARM架构的CPU则是移动端的老大。 X86架构和arm架构实际上就是CISC与RISC之间的区别&#xff0c;很多用户不理解它们两个之间到底有哪些区别&#xff0c;实际就是它们的领域不…

《算法训练营》语言基础(゚Д゚

&#x1f442; 无论你多怪异我还是会喜欢你&#xff08;《刺客伍六七》动画推广版片尾曲&#xff09; - 周子琰 - 单曲 - 网易云音乐 一起补基础&#xff01; φ(゜▽゜*)♪ &#x1f442; My Nams Suzie - Susie/Farfashah …

20230503-win10-U盘安装WIN10-22h2

20230503-win10-U盘安装WIN10-22h2 一、软件环境 zh-cn_windows_10_consumer_editions_version_22h2_updated_april_2023_x64_dvd_80cec13e.isofirpe 1.8.2标签&#xff1a;firpe win10 22h2分栏&#xff1a;WINDOWS 二、硬件环境 8G或以上的有PE功能的启动U盘一个台式机需…

【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 27页论文及实现代码

【2023年第十一届泰迪杯数据挖掘挑战赛】C题&#xff1a;泰迪内推平台招聘与求职双向推荐系统构建 27页论文及实现代码 相关链接 &#xff08;1&#xff09;建模方案 【2023年第十一届泰迪杯数据挖掘挑战赛】C题泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解…

String类的学习笔记(中):介绍字符串的不可变性和字符串常量池

本文介绍了String类字符串的不可变性和字符串常量池,主要包括 如何保证字符串不可变, 如何对字符串的修改. 为什么字符串要设置不可变, 字符串常量池的创建和了解,简单的字符串常量池图, 以及如何将字符串手动添加到字符串常量池 字符串不可变性和字符串常量池 一.字符串的不可…

考研数学经验分享

考研数二经验 先说一下自我情况吧&#xff0c;我是23计算机专硕考研&#xff0c;本科是河北一本双非&#xff0c;考的是数二英二和408。相对其他专业来说&#xff0c;计算机的专业课408由于要学四本书&#xff0c;所以会占用大部分时间&#xff0c;因此也会挤掉一些数学和英语的…

文本识别、截图识别保存和多文件识别

一、源码 github源码 二、介绍 采用Tesseract OCR识别 采用多线程进行图片识别 界面 选择 文件是可以识别本地的多张图片文件夹是识别文件夹里面的所有图片的内容截图 可以复制到剪切板、可以识别也可以直接保存 重置 是清除选择的图片和识别结果语言选择 是选择不同的模型…

AX7A200教程(7): 基于DDR3的串口发送和接收(64次突发)(二)

本章节主要使用ddr3做为缓存&#xff0c;串口接收的数据通过ddr缓存后通过发送模块发送出去。我们之前的串口发送数据通过ddr缓存是一个突发长度&#xff0c;本篇文章将会传输64个突发长度。整体的功能框图所下图所示 因本博文使用的是上个章节的图片数据&#xff0c;所以数据大…

微服务学习——分布式搜索

初识elasticsearch 什么是elasticsearch elasticsearch是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats&#xff0c;也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域…