网站首页 > 技术文章 正文
在一个页面中,如果有代码重复的内容,那你可以将其抽出来,用Vue注册成局部组件;在一个Web系统中,如果有多个页面有共同的代码,那你可以将其抽出来,用Vue注册成全局组件。
组件可以扩展 HTML元素,封装可重用的代码。让我们可以用独立可复用的小组件来构建大型应用。其实,不用组件也可以,只是复制粘贴多了,键盘容易坏(这里瞎说的,别当真)。
其实,如果你用第3方现成的组件库的话,自定义组件,用得很少,甚至不用,我这边就很少用,但这是一个知识点,你还是学一下比较好。
11.1 局部注册
在一个页面中,将其重复的内容抽出来,注册成组件,比如我想在一个页面中,多次出现介绍老陈的情况,我就将其注册成组件<laochen>。在需要用的地方直接引进<laochen></laochen>这个组件即可,以此来达到复用的目标。其实我用老陈做组件,就是为了寻找存在感。哈哈~~
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue3.0组件注册</title>
    <script src="vue.global.js"></script>
</head>
<body>
<div id="app">
    <laochen></laochen>
    好多内容啊.........<br/>
    <laochen></laochen>
</div>
<script>
    // 创建一个Vue 应用
    const app = Vue.createApp({})
    // 定义一个名为laochen的新页面组件
    app.component('laochen', {
        data() {
            return {
                lang: "Vue3.0"
            }
        },
        template: `<span style="color: darkgreen">
        老陈说编程:{{ lang }}</span><br/>`
    })
    app.mount('#app')
</script>
</body>
</html>输出结果
11.2 全局注册
如果在整个Web系统中,有重复代码存在的话,那可以将共同的内容,放到一个js文件中。之后,在需要用到的页面进行引进即可。
自己新建一个c.js文件并在里面敲入如下内容。如果你不叫老陈,那你可以改成老王,老刘,老李,老林,老油条......,你喜欢就好。
const ComponentA = {
    template: `<span style="color: darkgreen">老陈说编程:</span>
        <p>
          一个当了10年技术总监的老家伙,分享多年的编程经验。<br/>
          想学编程的朋友,可关注今日头条:老陈说编程。<br/>
          我在分享Python,前端、Java和App方面的干货。关注我,没错的。
        </p>`
}html页面文件内容,注意引进c.js文件。
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Vue3.0组件注册</title>
    <script src="vue.global.js"></script>
    <script src="c.js"></script>
</head>
<body>
<div id="app">
    <laochen></laochen>
    <hr style="background-color:green;height: 1px"/>
    <laochen></laochen>
</div>
<script>
    const app = Vue.createApp({
        components: {
            'laochen': ComponentA
        }
    })
    app.mount('#app')
</script>
</body>
</html>输出结果
好了,有关Vue3.0自定义组件的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注今日头条:老陈说编程。我在分享Python,前端、Java和App方面的干货。关注我,没错的。
猜你喜欢
- 2025-01-23 自定义的拖拽式智能大屏(springboot+VUE)
 - 2025-01-23 手把手教你在 Vue3 中自定义指令(vue自定义指令两种方式)
 - 2025-01-23 如何实现 Vue 自定义组件中 hover 事件以及 v-model
 - 2025-01-23 尝鲜 Vue3.0+Vite 自定义导航栏+弹窗组件
 - 2025-01-23 VUE工具箱:定制组件的 V-MODEL(vue必备插件)
 - 2025-01-23 Vue短文:如何在HTTP请求时传递自定义头部
 - 2025-01-23 20 道必看的 Vue 面试题 | 原力计划
 - 2025-01-23 浅析vue封装自定义插件(vue封装一个组件需要哪些步骤)
 - 2025-01-23 Vue3实战笔记(62)—Vue3自定义指令入门:10分钟学会基础用法
 - 2025-01-23 vue自定义组件v-model几种实现方法,拿走不谢
 
- 最近发表
 - 
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
 - [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
 - 超详细手把手搭建在ubuntu系统的FFmpeg环境
 - Nginx运维之路(Docker多段构建新版本并增加第三方模
 - 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
 - Go 人脸识别教程_piwigo人脸识别
 - 安卓手机安装Termux——搭建移动服务器
 - ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
 - Rust开发环境搭建指南:从安装到镜像配置的零坑实践
 - Windows系统安装VirtualBox构造本地Linux开发环境
 
 
- 标签列表
 - 
- cmd/c (90)
 - c++中::是什么意思 (84)
 - 标签用于 (71)
 - 主键只能有一个吗 (77)
 - c#console.writeline不显示 (95)
 - pythoncase语句 (88)
 - es6includes (74)
 - sqlset (76)
 - apt-getinstall-y (100)
 - node_modules怎么生成 (87)
 - chromepost (71)
 - flexdirection (73)
 - c++int转char (80)
 - mysqlany_value (79)
 - static函数和普通函数 (84)
 - el-date-picker开始日期早于结束日期 (76)
 - js判断是否是json字符串 (75)
 - c语言min函数头文件 (77)
 - asynccallback (87)
 - localstorage.removeitem (77)
 - vector线程安全吗 (73)
 - java (73)
 - js数组插入 (83)
 - mac安装java (72)
 - 无效的列索引 (74)
 
 
