【Vue3】01-vue3的基础 + ref reactive

server/2025/3/22 1:42:47/

首先确保已经有了ES6的基础

本文介绍 vue 的基础使用以及 两种响应数据的方式。

目录

1. 创建一个vue应用程序

2. Vue模块化开发

3. ref 和 reactive 的区别


1. 创建一个vue应用程序

所需的两个文件:

https://unpkg.com/vue@3/dist/vue.global.js

https://unpkg.com/vue@3/dist/vue.esm-browser.js

打开对应网页后右键另存为保存到桌面上

创建一个vue文件夹,文件夹内再创建一个demo文件夹

将 “vue.global.js” 文件复制进demo文件夹,并将此文件夹在vscode中打开

打开后,在demo文件夹中再创建一个demo.html

在head标签内创建一个script标签 src="vue.global.js"

效果如图:

现在开始创建 一个vue应用程序

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="vue.global.js"></script>
</head>
<body><!-- 创建一个id为app的div元素 --><div id="app">{{ msg }}     <!-- 7.{{ }} 插值表达式:可以将vue中定义的数据进行渲染 --><!-- 8.获取到return的msg --><!-- 10.获取新的复杂数据 --><h2>{{ web.title }}</h2><h2>{{ web.url }}</h2></div><script>// 11.如果想要去掉 createApp和reactive前的Vue 可以利用解构,效果不变// const {createApp,reactive} = Vue// 1.开始创建一个vue应用程序// 2.Vue.createApp({ })Vue.createApp({// 3.setup选项 设置响应的数据和响应方法setup(){// 9.msg是简单的数据,复杂的可以使用reactive({})const web = Vue.reactive({// 自己定义属性和属性值title:'zzz',url:'baidu.com'})// 4.设置一个return语句返回数据return {msg:'success',// 返回定义的复杂的数据web}}}).mount("#app")    // 5.将vue应用程序挂载到app上// 6.#app如何获取到return的msg值 回到div内</script>
</body>
</html>


2. Vue模块化开发

首先将在第一步保存在桌面的 vue.esm-browser.js 复制到 demo 文件夹中

回到刚刚的代码中删除第一个创建的script标签

并在 body 里的 script 标签添加 type = "module" 属性

并进行解构方式的修改

将传统开发方式修改为模块化开发方式

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app">{{ msg }}     <h2>{{ web.title }}</h2><h2>{{ web.url }}</h2></div><script type="module">// 修改为模块化开发方式import {createApp,reactive} from './vue.esm-browser.js'createApp({setup(){const web = reactive({title:'zzz',url:'baidu.com'})return {msg:'success',web}}}).mount("#app")</script>
</body>
</html>

注意这里要使用 live server 打开后才能看到信息

和前面介绍的传统方式的效果一样


3. ref 和 reactive 的区别

前面介绍的 reactive 创建了响应式对象 web

它是用于存储复杂数据类型的数据 如对象和数据

ref 是用于存储单个基本类型的数据 如数字、字符串等

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app">{{ msg }}     <h2>{{ web.title }}</h2><h2>{{ web.url }}</h2><!-- 4.显示number --><h3>{{ number }}</h3></div><script type="module">// 1.导入 ref import {createApp,reactive,ref} from './vue.esm-browser.js'createApp({setup(){// 2.定义常量number 用ref 引用类型const number = ref(10);// 5.如果想要修改number值number.value = 20;const web = reactive({title:'zzz',url:'baidu.com'})// 6.但如果想要修改reactive里的内容,可以直接修改 不用 .valueweb.url = 'www.baidu.com';return {msg:'success',web,// 3.返回numbernumber}}}).mount("#app")</script>
</body>
</html>

前面说 ref 只能存储单个的数字 字符串,但实际上也能存储数组

<body><div id="app">{{ msg }}     <h2>{{ web.title }}</h2><h2>{{ web.url }}</h2><!-- 4.显示number --><h3>{{ number }}</h3><!-- 8.num1 --><h3>{{ num1 }}</h3></div><script type="module">// 1.导入 ref import {createApp,reactive,ref} from './vue.esm-browser.js'createApp({setup(){// 2.定义常量number 用ref 引用类型const number = ref(10);// 7.ref定义数组const num1 = ref([1,2,3]);// 5.如果想要修改number值number.value = 20;const web = reactive({title:'zzz',url:'baidu.com'})// 6.但如果想要修改reactive里的内容,可以直接修改 不用 .valueweb.url = 'www.baidu.com';return {msg:'success',web,// 3.返回numbernumber,num1}}}).mount("#app")</script>
</body>


本文介绍 vue 的基础使用以及 两种响应数据的方式。


http://www.ppmy.cn/server/176925.html

相关文章

功能强大的免费 PDF 处理工具套装

PDFgear 是一款集合了多种 PDF 处理工具的软件套装&#xff0c;提供了全面的 PDF 处理解决方案&#xff0c;包括 PDF 阅读、编辑、转换、合并、签署等功能。它支持 Windows、Mac、iOS 和 Android 系统&#xff0c;完全免费且易于使用。 这是一款功能全面、操作简洁的PDF处理工具…

oracle cdc logminer与oracle xstream

以下为Oracle CDC技术中XStream与LogMiner的核心差异解析&#xff0c;结合技术背景、实现原理、性能表现等维度进行系统化对比。 一、技术背景与定位差异 LogMiner&#xff1a;官方日志分析工具的非正式应用 最初设计用于数据库管理员&#xff08;DBA&#xff09;审计和分析历史…

Docker 内部通信(网络)

1. 创建自定义桥接网络 首先&#xff0c;创建一个自定义的Docker网络。这可以通过docker network create命令完成。例如&#xff0c;我们可以创建一个名为my_custom_network的网络&#xff1a; docker network create --driver bridge my_custom_network2. 启动容器并连接到自…

【从零开始】Air780EPM的LuatOS二次开发——OneWire协议调试注意事项!

当涉及到与传感器、执行器等外部设备交互时&#xff0c;OneWire协议的高效调试成为决定项目成败的关键环节。OneWire协议&#xff08;单总线协议&#xff09;以其仅需一根数据线即可实现设备通信的极简特性&#xff0c;被广泛应用于温度传感器、身份识别模块等场景。 一、LuatO…

Python学习第十九天

Django-分页 后端分页 Django提供了Paginator类来实现后端分页。Paginator类可以将一个查询集&#xff08;QuerySet&#xff09;分成多个页面&#xff0c;每个页面包含指定数量的对象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…

Unitest和pytest区别

1️⃣ 设计理念 ➡️ unittest &#xff1a; 是 Python 标准库的一部分&#xff0c;设计灵感来自 Java 的 JUnit&#xff0c;强调面向对象的测试模式。 测试用例需要继承 unittest.TestCase 类&#xff0c;测试方法以 test_ 开头。 更适合传统、结构化的测试开发方式。 ⭕ pyte…

Apache Paimon 在抖音集团多场景中的优化实践

资料来源&#xff1a;火山引擎-开发者社区 本文将基于抖音集团内部两大业务的典型实时数仓场景&#xff0c;介绍Paimon在抖音集团内部的生产实践。 作者&#xff1a;李明、苏兴、文杰 抖音集团大数据工程师 目前抖音集团内部主要使用 Lambda 架构进行实时数仓建设&#xff0c;其…

前端高级CSS用法

前端高级CSS用法 在前端开发中&#xff0c;CSS&#xff08;层叠样式表&#xff09;不仅是用来控制网页的外观和布局&#xff0c;更是实现复杂交互和动态效果的关键技术之一。随着前端技术的不断发展&#xff0c;CSS的用法也日益丰富和高级。本文将深入探讨前端高级CSS的用法&a…