Vue 组件化编程

Vue 组件化编程

非单文件组件

定义组件

使用Vue.extend(options)创建

  • 不要写el
  • data要写成函数,避免组件被复用时,数据存在引用关系

注册组件

  • 局部注册:new Vue()的时候,options传入components
  • 全局注册:Vue.Component("组件名",组件)
全局注册
<div id="app"><!-- 使用组件 --><school></school><!-- 单标签写法需要在脚手架坏境下使用 --><!-- <school /> --></div>
Vue.config.productionTip = false;// 定义组件const school = Vue.extend({template: `<div><h1>我是一个school组件</h1><h1>我是:{{userName}}</h1><h1>我是:{{func()}}</h1></div>`,data() {return {userName: "张三"}},methods: {func() {return 100;}}})// 全局注册组件Vue.component("school", school);var vm = new Vue({el: "#app",data() {return {}},})
局部注册
<div id="app"><!-- 使用组件 --><school></school><!-- 单标签写法需要在脚手架坏境下使用 --><!-- <school /> --></div>
Vue.config.productionTip = false;// 定义组件const school = Vue.extend({template: `<div><h1>我是一个school组件</h1><h1>我是:{{userName}}</h1><h1>我是:{{func()}}</h1></div>`,data() {return {userName: "张三"}},methods: {func() {return 100;}}})// 全局注册组件// Vue.component("school", school);var vm = new Vue({el: "#app",data() {return {}},// 局部注册组件components:{school;})

组件嵌套

<div id="app"></div>
 Vue.config.productionTip = false;//定义student组件const student = Vue.extend({name: 'student',template: `<div><h4>学生姓名:{{name}}</h4>	<h4>学生年龄:{{age}}</h4>	</div>`,data() { return { name: '张三', age: 18 } }})//定义school组件const school = Vue.extend({name: 'school',template: `<div><h3>学校名称:{{name}}</h3>	<h3>学校地址:{{address}}</h3>	<student></student></div>`,data() { return { name: '某某大学', address: '北京' } },//注册组件(局部)components: { student }})//定义hello组件const hello = Vue.extend({template: `<h3>{{msg}}</h3>`,data() { return { msg: '欢迎来到某某大学学习!' } }})//定义app组件const app = Vue.extend({template: `<div>	<hello></hello><school></school></div>`,components: { school, hello }})//创建vmnew Vue({el: '#app',template: '<app></app>',//注册组件(局部)components: { app }})

在这里插入图片描述

  1. Vue.extend()方法本质就是实例化VueComponent构造函数
  2. 两种注册方法的区别:
    全局注册:只需要注册一次,在任何组件中都可以使用
    局部注册:在变量A中注册,只能在A中使用组件
  3. VueComponent.prototype.__proto__===Vue.prototype

组件命名特性:

  1. 可以使用小写或者大写首字母都会自动转为大写
  2. my-schoolmyschool 都为转为同样格式的 MySchool,但是myschool需要在脚手架坏境下使用
  3. 使用的组件名可以不和组件定义的名字相同,组件名可以自定义
  4. 使用的组件名需要规避HTML中已有的元素标签名称

单文件组件

MySchool.vue
<template><h1>我是MySchool组件</h1>
</template><script>
export default {name:"MySchool",  // 不能使用单个单词,如schooldata(){return{msg:"欢迎学习vue",}}
}
</script><style></style>
MyStudent.vue
<template><h1>我是MyStudent.组件</h1>
</template><script>
export default {name:"MyStudent.",  // 不能使用单个单词,如school
}
</script><style></style>
MyApp.vue
<template><div id="app"><MySchool></MySchool><MyStudent></MyStudent></div>
</template><script>
// 导入
import MySchool from './MySchool.vue';
import MyStudent from './MyStudent.vue';
export default {name:"MyApp.",  // 不能使用单个单词,如school// 注册components:{MySchool,MyStudent}
}
</script><style></style>

在这里插入图片描述


  • 失联

最后编辑时间 2024,3,31;16:32

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

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

相关文章

回收站删除以后还能撤销吗 回收站删除以后怎么找回 回收站清空了怎么恢复 easyrecovery数据恢复软件

回收站删除以后能撤销吗&#xff1f;有不少网友前一秒清空回收站&#xff0c;后一秒就开始在网上疯狂搜寻如何撤销删除回收站的办法。实际上&#xff0c;清空回收站并不可怕&#xff0c;被删除的数据仍然保存在我们的电脑硬盘中。今天我为大家介绍回收站删除以后怎么找回数据的…

HTTP 常见面试题(计算机网络)

HTTP 基本概念 一、HTTP 是什么&#xff1f; HTTP(HyperText Transfer Protocol) &#xff1a;超文本传输协议。 HTTP 是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。 「HTTP 是用于从互联网服务器传输超文本到本…

苍穹外卖04 (新增内表的外键id获取,多表分页查询,多表批量删除,修改先查在改内表外键id用主表的,起售时包含了“停售”状态的外关联表)

1. 新增套餐 1 需求分析和设计 业务规则&#xff1a; 套餐名称唯一 套餐必须属于某个分类 套餐必须包含菜品 名称、分类、价格、图片为必填项 添加菜品窗口需要根据分类类型来展示菜品 新增的套餐默认为停售状态 2 代码实现 1 根据分类id查询菜品 DishControllerGetMa…

【C语言环境】Sublime中运行C语言时MinGW环境的安装

要知道&#xff0c;GCC 官网提供的 GCC 编译器是无法直接安装到 Windows 平台上的&#xff0c;如果我们想在 Windows 平台使用 GCC 编译器&#xff0c;可以安装 GCC 的移植版本。 目前适用于 Windows 平台、受欢迎的 GCC 移植版主要有 2 种&#xff0c;分别为 MinGW 和 Cygwin…

数据分析之POWER BI Desktop可视化应用案列

在power bi中导入数据 导入前期建好的模型 简单介绍&#xff08;power bi desktop&#xff09; 将右边字段全部展开 各类数据 所作的模型 在excel中是单向的&#xff0c;power bi 中可以是双向的 右键单击----点击属性 选择两个---在两个方向上应用安全筛选器 变为双向的…

每日面经分享(pytest入门)

1. pytest具有什么功能 a. 自动发现和执行测试用例&#xff1a;pytest可以自动发现项目中的测试文件和测试函数&#xff0c;无需手动编写测试套件或测试运行器。 b. 丰富的断言函数&#xff1a;pytest提供了丰富的断言函数&#xff0c;方便地验证测试结果是否符合预期。断言函…

flask的使用学习笔记1

跟着b站学的1-06 用户编辑示例_哔哩哔哩_bilibili flask是一个轻量级&#xff0c;短小精悍&#xff0c;django大而全 创建&#xff1a; manage.py和一个和项目名称相同的目录&#xff08;static&#xff08;前端生成的dist&#xff09;、templates&#xff08;html文件&…

【吴恩达机器学习笔记】神经网络初探

前言 传统机器学习不足 【例】预测房价&#xff0c;不同的房子有上百个特征 如果要包含所有的二次项&#xff08;即使只是二次&#xff09;&#xff0c;最终也有很多项&#xff0c; 每个参数都有 n 个变量&#xff0c;那二次项数量将会是 n^2 /2 级别的量级&#xff0c;模型…

并查集

本文用于个人算法竞赛学习&#xff0c;仅供参考 目录 一.什么是并查集 二.并查集实现 三.路径优化 四.时间复杂度 五.并查集路径压缩 模板 五.题目 一.什么是并查集 并查集&#xff08;Disjoint Set&#xff09;是一种数据结构&#xff0c;用于处理一系列不相交的集合的合…

一文了解JAVA的常用API

目录 常用kpimathSystemRuntimeObjectObjectsBigIntegerBigDecima正则表达式包装类 常用kpi 学习目的&#xff1a; 了解类名和类的作用养成查阅api文档的习惯 math 工具类。因为是工具类&#xff0c;因此直接通过类名.方法名(形参)即可直接调用 abs&#xff1a;获取参数绝对…

Linux学习:进程(4)程序地址空间(笔记)

目录 1. Linux下各种资源的内存分布2. 物理地址与虚拟(线性)地址3. 程序地址空间的区域划分4. 地址映射与页表5. 缺页中断 1. Linux下各种资源的内存分布 2. 物理地址与虚拟(线性)地址 在有关进程创建的初步学习中&#xff0c;我们了解了fork函数创建子进程的方式。此种进程的创…

Spring Boot 一.基础和项目搭建(上)

之前也自学过SSM框架&#xff0c;Spring Boot框架&#xff0c;也动手写过几个项目&#xff0c;但是这是第一次完整的记录。从0开始&#xff0c;把一些细节整理了一下。 大概会分为十几小节&#xff0c;这是一个学习的过程&#xff0c;更是一个思考的过程&#xff0c;废话不多说…

金融汽车科技LLM

汇丰银行 众安保险 1. AIGC重塑保险价值链 小额高频 2.构建智能应用的技术方案演进 增加微服务 长记忆&#xff1a;向量库短记忆&#xff1a;对话历史&#xff0c;思考路径&#xff0c;执行历史 中台架构设计 蔚来汽车在大模型的应用实践 公司介绍 应用架构 应用实践 4.大…

Django框架之DRF(武沛齐全)

一、FBV和CBV FBV&#xff0c;function base views&#xff0c;其实就是编写函数来处理业务请求。 from django.contrib import admin from django.urls import path from app01 import views urlpatterns [path(users/, views.users), ] from django.http import JsonResp…

快速排序---算法

1、算法概念 快速排序&#xff1a;通过一趟排序将待排记录分隔成独立的两部分&#xff0c;其中一部分记录的数据均比另一部分的数据小&#xff0c;则可分别对这两部分记录继续进行排序&#xff0c;以达到震哥哥序列有序。 快速排序的最坏运行情况是O()&#xff0c;比如说顺序数…

网络基础二补充——json与http协议

五、市面上常用序列化和反序列化工具 ​ 常用的有&#xff1a;json、protobuf、xml三种方案&#xff1b; 5.1json的使用 1.安装jsoncpp库&#xff0c;是一个第三方的开发库文件&#xff1b; sudo yum install -y jsoncpp-devel2.使用json ​ 经常使用的头文件是json.h&…

【uC/OS-III篇】uC/OS-III 创建第一个任务(For STM32)

uC/OS-III 创建第一个任务&#xff08;For STM32&#xff09; 日期&#xff1a;2024-3-30 23:55&#xff0c;结尾总结了今天学习的一些小收获 本博客对应的项目源码工程 源码项目工程 1. 首先定义错误码变量 // 用于使用uC/OS函数时返回错误码 OS_ERR err; 2. 定义任务控制…

Golang | Leetcode Golang题解之第2题两数相加

题目&#xff1a; 题解&#xff1a; func addTwoNumbers(l1, l2 *ListNode) (head *ListNode) {var tail *ListNodecarry : 0for l1 ! nil || l2 ! nil {n1, n2 : 0, 0if l1 ! nil {n1 l1.Vall1 l1.Next}if l2 ! nil {n2 l2.Vall2 l2.Next}sum : n1 n2 carrysum, carry …

Vue ElementPlus Input输入框

Input 输入框 通过鼠标或键盘输入字符 input 为受控组件&#xff0c;它总会显示 Vue 绑定值。 通常情况下&#xff0c;应当处理 input 事件&#xff0c;并更新组件的绑定值&#xff08;或使用v-model&#xff09;。否则&#xff0c;输入框内显示的值将不会改变。不支持 v-mode…

【面试经典150 | 动态规划】最小路径和

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;动态规划方法二&#xff1a;空间优化 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题…