首页 > 其他分享 >Vue-组件

Vue-组件

时间:2024-03-22 22:55:28浏览次数:27  
标签:Vue name student template 组件 data

Vue 组件

一、概念

Vue基于可以重用、独立的思想,设计出组件这一概念,组件可以使程序员对每个部分进行单独设计。

如下图为组件很形象的定义

![image-20240322222233651](/Users/zhangqi/Library/Application Support/typora-user-images/image-20240322222233651.png)

二、非单文件组件

1.组件的基础使用

<div id="root">
  <student></student>
</div>

局部组件以及注册

//第一步:创建student组件
const student = Vue.extend({//此处school即为Vue创建的组件
  name:'Student',//首字母大写,约定俗成。Vue在用该组件时,会自动将首字母大写
  template:``,//可以在此处写简单的模板
  data(){//组件内的data,是以对象形式保存的,不可以写成数组形式
    return {
      name:"张三",
      age:19
    }
  },
  methods: {
    
  }
})
new Vue({
  el:'#root',
  data:{
    msg:'你好啊!'
  },
  //第二步:注册组件(局部注册)
  components:{
    student
  }
})

全局组件以及注册

<div id="root">
  <hello></hello>
</div>
//第一步:创建hello组件
const hello = Vue.extend({
  template:`
				<div>	
					<h2>你好啊!{{name}}</h2>
				</div>
			`,
  data(){
    return {
      name:'Tom'
    }
  }
})

//第二步:全局注册组件
Vue.component('hello',hello)

new Vue({
  el:'#root2',
})

2.组件的嵌套

<script type="text/javascript">
 Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

//定义student组件
const student = Vue.extend({
  name:'student',
  template:`
				<div>
					<h2>学生姓名:{{name}}</h2>	
					<h2>学生年龄:{{age}}</h2>	
				</div>
			`,
  data(){
    return {
      name:'尚硅谷',
      age:18
    }
  }
})

//定义school组件
const school = Vue.extend({
  name:'school',
  template:`
				<div>
					<h2>学校名称:{{name}}</h2>	
					<h2>学校地址:{{address}}</h2>	
					<student></student>
				</div>
			`,
  data(){
    return {
      name:'尚硅谷',
      address:'北京'
    }
  },
  //注册组件(局部)
  components:{
    student
  }
})

//定义hello组件
const hello = Vue.extend({
  template:`<h1>{{msg}}</h1>`,
  data(){
    return {
      msg:'欢迎来到尚硅谷学习!'
    }
  }
})

//定义app组件
const app = Vue.extend({
  template:`
				<div>	
					<hello></hello>
					<school></school>
				</div>
			`,
  components:{
    school,
    hello
  }
})

//创建vm
new Vue({
  template:'<app></app>',
  el:'#root',
  //注册组件(局部)
  components:{app}
})
</script>

3.重要的内置关系

VueComponent.prototype.proto === Vue.prototype

三、单文件组件

标签:Vue,name,student,template,组件,data
From: https://www.cnblogs.com/bugDiDiDi/p/18090559

相关文章

  • Mall4j开源商城系统-基于SpringBoot+Vue系统开发介绍
     今天来介绍一款非常不错的Mall4j开源商城系统Mall4j开源商城,一个基于springboot、springoauth2.0、mybatis、redis的轻量级、前后端分离、防范xss攻击、拥有分布式锁,为生产环境多实例完全准备,数据库为b2b2c设计,拥有完整sku和下单流程的开源商城。目录 今天来介绍一......
  • 鸿蒙HarmonyOS实战-ArkUI组件(Row/Column)
    ......
  • 【React 】如何提高组件的渲染效率?在React中如何避免不必要的render?
    1.是什么react基于虚拟DOM和高效Diff算法的完美配合,实现了对DOM最小粒度的更新,大多数情况下,React对DOM的渲染效率足以我们的业务日常复杂业务场景下,性能问题依然会困扰我们。此时需要采取一些措施来提升运行性能,避免不必要的渲染则是业务中常见的优化手段之一2.如何做......
  • 记录一次SpringBoot + Vue前后分离项目的部署流程
    前言本教程使用黑马SpringBoot3+Vue3全套视频教程大事件项目作为前后端代码。前置需要:mysqljdkredisnginxlinux环境打包前端构建项目命令npmrunbuild会在项目根路径下生成dist文件夹,这里存放了我们打包好的前端代码。可以使用zip进行全部的压缩等下好上传到服......
  • Vue框架学习(二)
    一、指令修饰符通过"."指明一些指令后缀,不同后缀封装了不同的处理操作,目的是为了简化代码。1、按键修饰符@keyup.enter 键盘回车监听,一旦回车就对文本框里的数据进行处理。2、v-model修饰符v-model.trim       去除首尾空格v-model.number   ......
  • Vue 的父组件和子组件生命周期钩子函数执行顺序?
    Vue的父组件和子组件生命周期钩子函数执行顺序可以归类为以下4部分:加载渲染过程父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted子组件更新过程父beforeUpdate->子beforeUpdat......
  • Vue和SpringBoot实现的通用商城系统,高质量毕业论文范例,附送源码、数据库脚本,项目导入
    1.项目技术栈前端必学三个基础:“HTML、CSS、JS”,基本每个B/S架构项目都要用到,基础中的基础。此外项目页面使用Vue等前端框架技术。后端使用Java主流的框架 SpringBoot,使用MySQL数据库,是一个JavaWEB进阶学习的好资源。2.适合对象Java初学者、Java课题设计、Java毕业设......
  • vue或react项目上线刷新出现404的原因以及解决办法
    问题描述:vue/react项目,正常的页面操作跳转,不会出现404的问题,但是一旦刷新,就会出现404报错。产生原因:我们打开vue/react打包后生成的dist文件夹,可以看到只有一个index.html文件及一些静态资源,这个是因为vue/react是单页应用(SPA),只有一个index.html作为入口文件,其它的路由都是通......
  • vue2.0是如何监听双向绑定的?
    <!DOCTYPEhtml><html><head><metacharset="utf-8"/><title></title><style>.contanier{width:300px;height:300px;......
  • Vue学习笔记57--vue默认插槽 +
    vue默认插槽示例一:不使用插槽Category.vue<template><divclass="category"><h3>{{title}}</h3><ul><liv-for="(item,index)inlistData":key="index">{{item}}</li>......