首页 > 其他分享 >Vue组件概念以及全局组件定义

Vue组件概念以及全局组件定义

时间:2024-08-20 15:26:26浏览次数:9  
标签:Vue 定义 标签 component template 组件 全局

组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不能的功能木块,将来需要什么样的功能,就可以去调用 组件和模块化的不同: 模块化:是从代码逻辑的角度进行划分的,方便代码分层开发,保证每个功能模块只能单一 组件化:是从UI界面的角度进行划分的,前端的组件化,方便UI组件的重用。 组件有三种定义方式: 其中,Vue.extend,是属于vue的全局API,在实际开发中很少用到,相比常用的Vue.component写法,用extend步骤更加麻烦 我们就介绍Vue.compenent组件的做法。 全局组件的定义方式 1、通过Vue.component('自定义组件名',{配置项})   组件名:如果都是小写字母,则在使用组件时直接写即可,作为标签直接写     如果组件使用驼峰命名,在使用组件的时候,必须把大写字母转换为小写字母,而且使用-分割   配置项:     template:用来定义组件模板     template配置项中只能有一个根标签,如果有多个根标签,只展示第一个根标签     官方推荐中,上来先写一个div以后的东西都写到div中   使用组件:把组件当做标签使用 如下:

    在这里我们定义了login组件
Vue.component('login', { template:'<div><h1>登录组件</h1></div>' });
 在html直接使用标签的方式调用组件
<login></login>
       定义了大小写混合的组件写法
        Vue.component('userList', {
           template:'<div><h1>用户列表组件</h1></div>'
       })    
在调用的时候,要都转为小写,且在大写的字母上用-代替       
 <user-list></user-list>

方式二:采用直接定义的方式来调用,就是先声明组件名和定义component的时候分开来写,如下:

        //通过直接定义来配置vue组件,这种写法是我们后面用的最多的,其更加的方便
       let register = {
           template: "<div><h1>注册组件</h1></div>"
       }
       Vue.component('register',register)  
 <register></register>
上述两种定义方式都存在弊端,就是需要在字符串中需要定义大量的html,很难看,也不好维护,需要拼。 我们把html模板定义在一个template标签中,template配置项定义template的id,就可以解决这个问题了,如下:
      在template中直接定义id
     //定义导航组件
       let main_nav = {
           template : "#main_nav",
       }
       Vue.component('main_nav',main_nav)
    <!-- 定义组件模板 -->
    定义template标签,上面放上组件中的id,组件会过来找对应的temlate,并且这个template可以不放入vue实例挂载点中
    <template id="main_nav">
        <div>
            <ul>
                <li>首页</li>
                <li> 产品中心</li>
                <li>新品上市</li>
            </ul>
        </div>
    </template>  
    <div id="app">
        <!-- 
            vue组件的三种定义方式
            2、Vue.component
         -->
        <login></login>
        <user-list></user-list>
        <register></register>
        <main_nav></main_nav> 在挂载点中使用组件
    </div>

 

 

标签:Vue,定义,标签,component,template,组件,全局
From: https://www.cnblogs.com/yansunda/p/18369488

相关文章

  • Vue实现简单的粒子特效
    在Vue中实现粒子动画效果可以通过多种方式,其中一种常见的方法是使用CanvasAPI来绘制粒子,并通过JavaScript控制粒子的运动和动画效果。以下是一个简单的示例,展示如何在Vue组件中实现基本的粒子动画效果。1.创建Vue项目首先,确保你已经安装了VueCLI。如果没有安装,可以通过以......
  • 基于nodejs+vue协同过滤算法的商品推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为人们日常生活中不可或缺的一部分。然而,面对海量的商品信息和日益增长的消费者需求,用户往往难以快速找到符合自己兴......
  • 基于nodejs+vue协同过滤算法的体育用品推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网技术的蓬勃发展和体育文化的日益普及,体育用品市场迎来了前所未有的发展机遇。然而,面对市场上琳琅满目的体育用品和消费者日益增长的个性化需求,如......
  • 基于nodejs+vue协同过滤算法的电影推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着互联网的普及和视频流媒体服务的兴起,电影作为大众娱乐的重要组成部分,其数量正以惊人的速度增长。面对浩如烟海的电影资源,用户往往难以快速找到符合自己......
  • 基于nodejs+vue协同过滤的高考志愿推荐系统[程序+论文+开题]-计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着教育改革的深入和高等教育普及率的提升,高考作为人生的重要转折点,其志愿填报过程日益受到考生及家长的重视。然而,面对众多高校和复杂的专业设置,如何科学......
  • 微信小程序如何实现组件之间的数据传递?
    在微信小程序中,组件之间的数据传递主要有以下几种方式:父组件向子组件传值:父组件可以通过设置子组件的属性(properties)来传递数据。首先,在子组件的.json文件中定义properties:{"component":true,"usingComponents":{},"properties":{"myProperty":{......
  • Vue生命周期
    从vue实例创建、运行、到销毁期间,总是伴随着各种各样的事件。而这些事件称为生命周期。每个Vue实例在被创建的时候都要经过一系列的初始化过程,例如,需要数据监听,编译模板,实例挂载到dom并在数据变化时更新Dom等,同时在这个过程中也会运行一系叫做生命周期钩子的函数,这给了用户在不......
  • 创建uni-app项目(vue3+ts+vite)
     npxdegitdcloudio/uni-preset-vue#vite-tsm-uni-demo1跳转到对应目录,装包,运行cdm-uni-demo1yarnyarndev:h5tsconfig.json:{"extends":"@vue/tsconfig/tsconfig.json","compilerOptions":{"ignoreDeprecations&quo......
  • SpringBoot+Vue校园兼职平台-计算机毕业设计源码26261
    摘要校园兼职平台作为连接学生和校园兼职资源的重要桥梁,具有推动校园就业服务和学生职业发展的重要作用。本项目旨在基于SpringBoot后端框架和Vue前端框架,设计和实现一个高效、便捷的校园兼职平台。通过该平台,学生可以轻松浏览、搜索和申请各类校园兼职岗位,实现校园资源的最......
  • 学习vue3——分页(前、后端分页两种)
    一、前端分页 后端将所有数据给前端,前端来实现分页1<template>2<divclass="flexitems-centerjustify-centermt-5">3<el-pagination4background5v-model:current-page="currentPage1"6......