百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

Vue3核心概念之组件 vue3 组件

qiyuwang 2024-10-10 11:35 11 浏览 0 评论

组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构:

每个组件内封装自定义内容与逻辑,下面来看一下最基础的组件是怎么定义和使用。

首先,定义组件(App.vue)

<template>
   <div>第一个组件</div>
</template>

接着在main.ts使用组件

// 导入vue的依赖
import { createApp } from 'vue'
// 引入样式
import './style.css'
// 导入组件
import App from './App.vue' 
// 把App组件挂载到index.html的id为#app的div上
createApp(App).mount('#app')

下面来看一下index.html的定义,可以看到通过script引入了main.ts,脚本执行的时候,把App组件挂载到了页面id为#app的div上,也就是组件树的根节点。

上面已经可以基本了解组件的应用,实际上,组件还有非常丰富的组成部分,下面来逐步丰富这个组件的内容。

与Vue2相比,Vue3实现了组合模式,主要体现在组件的script部分。

组件的主要组成部分有template(组件的结构定义),script(数据以及逻辑交互),style(UI布局和美化)。

下面,先介绍第一个生命周期setup,可以认为这是一个配置阶段,我们给页面添加个按钮,动态改变App.vue的div的内容。

<template>
  <div>{{ message }}</div>
  <button @click="changeMessage">点击我</button>
</template>

<script lang="ts">
import { ref } from 'vue'
export default {
  setup() {
    var message = ref("第一个组件");
    console.log(message);
    var changeMessage = () => { message.value = "点击了按钮" + new Date() };
    return {changeMessage,message}
  }
}
</script>

通过在script标签里声明为setup,可以更加简洁,所有在标签里顶层的变量和方法会自动包装到setup函数的返回值里,从而在模板中可以直接引用

<template>
   <div>{{message}}</div>
   <button @click="changeMessage">点击我</button>
</template>

<script lang="ts" setup>
var message="第一个组件";
var changeMessage=()=>{message="点击了按钮"+new Date()};
</script>

可以看到代码简洁了很多。解释一下上面代码的含义,定义一个变量message,点击按钮,修改message的值,message被绑定到了div上。运行起来之后,可以发现上面的代码并没有像我们预期的那样,点击修改掉div的内容。

那是因为message并不是响应式的变量,下面来改造一下

<template>
   <div>{{message}}</div>
   <button @click="changeMessage">点击我</button>
</template>

<script lang="ts" setup>
import {ref} from 'vue'
var message=ref("第一个组件");
var changeMessage=()=>{message.value="点击了按钮"+new Date()};
</script>

通过ref函数,把message做了包装,使得message有了响应性(响应性相关的内容请关注后续的文章)。


这时候我们就完成了数据和页面的交互。

每天学习进步一点点,喜欢的请点点关注,后续给大家带来更多相关的内容。

相关推荐

程序员都用什么电脑?适合编程笔记本电脑推荐

适合程序员的笔记本电脑首先应该满足小巧轻便这个需求,然后才是性能因素,一个标准的程序员必定能够随时随地改BUG,所以可以优先考虑苹果MacBookPro,由于其MacOS就是Linux内核,做开...

Linux(debian)内核编译(二)虚拟网卡实例

2.10.虚拟网卡TUN/TAP...

老毛子要上天 冬天竟然拿矿机当暖气

2017-12-2814:10:55作者:李鑫我们都知道矿机在实际工作当中会产生出大量的热能,近日俄罗斯就有人用Comino挖矿电脑来充当暖气的效果,这台电脑不需要特别安装,也没有多余的接口,同样...

qemu linux内核(5.10.209)开发环境搭建

版本信息宿主机:ubuntu20.04.6LTS(FocalFossa)虚拟机:ubuntu20.04.6LTS(FocalFossa)安装宿主机的步骤省略,和一般的在vmware中安...

Ubuntu 16.04 LTS现已正式支持IBM LinuxONE与z Systems

4月22号的时候,Canonical很高兴地宣布了Ubuntu16.04LTS(XenialXerus)已正式支持IBMzSystems和LinuxONE大型机的消息。该长期支持版本经历了六...

号称最强大深度学习笔电,雷蛇推出Lambda Tensorbook笔记本电脑

IT之家4月13日消息,深度学习公司Lambda与雷蛇合作,发布了新的LambdaTensorbook笔记本电脑,号称是世界上为深度学习设计的最强大的笔记本电脑,可以使用Linux...

电脑连 WiFi 全攻略!3 步搞定 + 疑难解答

电脑搜不到WiFi?输对密码却连不上?看视频卡、打游戏延迟高?别慌!不管你用Win/Mac还是Linux,这篇保姆级教程从连接步骤到故障排查全覆盖,10分钟让你告别“网络黑洞”!一、基础连...

linux 网卡bond模式

如何进行Linux网络绑定网络绑定简介在Debian10Buster(DHCP)上配置有线和无线网络绑定...

在 Ubuntu Server 上配置静态 IP 地址

Ubuntu17.10之前版本编辑/etc/network/interfaces文件重启网络服务或重启服务器来应用新的配置...

爬虫搞崩网站后,程序员自制“Zip炸弹”反击,6刀服务器成功扛住4.6万请求

...

Linux网络运维脚本实战示例:配置下发

在Linux网络运维场景中,自动化配置下发是提高效率的关键。一个示例展示如何编写一个Shell脚本,用于远程批量部署网络配置到多台服务器。本示例将使用SSH无密码登录和Ansible自动化工具来简化和...

KVM 虚拟机网络连接异常的排查方法

#KVM虚拟机网络连接异常的排查方法当KVM虚拟机出现网络连接问题时,可以按照以下系统化的方法进行排查和解决:##一、基础网络检查###1.检查虚拟机网络状态```bash#在虚拟机内部检...

技术宅教你linux开发板直连电脑ubuntu

1:我使用的是笔记本,台式机类似。原理:和开发板挂载到路由器或者交换机不一样。我们通过笔记本电脑直连,是将笔记本的物理网卡作为一个桥梁,把开发板和虚拟机ubuntu连接在一起。连接好以后可以使用NFS...

Ubuntu 25.04发行版登场:Linux 6.14内核,带来多项技术革新

IT之家4月18日消息,科技媒体linuxiac昨日(4月17日)发布博文,报道称代号为PluckyPuffin的Ubuntu25.04发行版正式上线,搭载最新Linu...

【故障解决】麒麟系统右下角网络图标取消显示叹号

原文链接:【故障解决】麒麟系统右下角网络图标取消显示叹号...

取消回复欢迎 发表评论: