初始前端1

简介: 本文介绍了 Vue 组合式开发中使用 `ref` 实现响应式数据的方法,强调不依赖 `this`。内容包括创建 `.vue` 文件的模板结构、使用 `ref` 定义响应式变量(如 `count2.value`)与非响应式变量(如 `count3`)的区别,以及如何在模板中绑定数据。同时通过表格对比了 `ref` 在 JavaScript 和模板中的使用方式,指出在 JS 中需用 `.value` 操作数据,而在模板中可直接访问。最后以生活化的类比解释 `ref` 的作用,帮助开发者更好地理解响应式原理。

vue组合式开发(不使用this)

模板式写法:

vscod(调出控制终端快捷键ctrl+shift+~)

1.在文件夹中创建xx.vue文件,文件包括三部分

<script setup></script>  对应js
<template></template> 只能有一份 ,另外两个任意  对应html
<style scoped></style>  对应 css

2.填充内容

<script setup>
import { onMounted, ref } from "vue";  //引用vue的函数
/* 组合式开发 */
  //代表count2初始值为0
const count2 = ref(0); //ref响应式赋值,模型改变视图会立即渲染,修改多次渲染多次,通俗就是,点击数字会变化
const demo2 = () => {
  count2.value++;    响应式 要用.value进行操作
};
  let count3 = 0; //不是响应是赋值,第一次会渲染视图,但是后面对数据的修改视图不会渲染 ,点击数字无变化
const demo3 = () => {
  count3++;
};
onMounted(() => {
  console.log("页面挂在完成。。。");
});
</script>
<template>
  <h1>组合式开发</h1>
  <button @click="demo2">click:{{ count2 }}</button>  {{ count2 }} vue中的插值表达式
  <button @click="demo3">click:{{ count3 }}</button>
</template>
<style scoped></style>

3.挂载在APP.vue中

<script setup>
import Dev1XXS(文件名) from "./Pages/Dev1XXS.vue(路径)";  导入导入其他组件,当前组件能够使用Dev1XXS组件的功能和 UI
</script>
// 模板只能有一份
<template>
  <Dev1XXS></Dev1XXS>    //写模板  定义组件的 UI 结构 将Dev1XXS组件渲染到当前组件的位置;标签中间能否插入内容要根据属性决定
</template>
<style scoped></style>


ref使用value的时机

变量

数据类型

存储内容

典型应用场景

访问方式(JS / 模板)

queryForm

对象

表单字段

表单数据绑定、筛选条件

queryForm.value.name

/queryForm.name

empId

数值

单个 ID 值

记录行 ID、当前选中项

empId.value

/empId

employeeList

数组

列表数据

列表渲染、数据展示

employeeList.value

/employeeList

场景

JavaScript 代码(需用.value

)

模板代码(无需.value

)

访问对象属性

queryForm.value.name

queryForm.name

访问基本类型

empId.value

empId

访问数组

employeeList.value[0].name

employeeList[0].name

修改对象属性

queryForm.value.name = "张三"

<input v-model="queryForm.name">

修改基本类型

empId.value = 1001

<div>{{ empId }}</div>

  1. ref的作用:将数据包装成响应式对象,通过.value存储实际值。
  2. JS 中必须用.value:因为需要显式操作被包装的数据,让 Vue 追踪变化。
  3. 模板中无需.value:框架自动解包.value,简化语法。

举个生活类比:
ref就像一个装着糖果(数据)的盒子(.value)。

  • 在 JS 中,你需要打开盒子(.value)才能拿到糖果;
  • 在模板中,盒子是透明的,你可以直接看到并拿到糖果(无需.value)。
相关文章
|
设计模式 SQL 安全
【编程进阶知识】Java单例模式深度解析:饿汉式与懒汉式实现技巧
本文深入解析了Java单例模式中的饿汉式和懒汉式实现方法,包括它们的特点、实现代码和适用场景。通过静态常量、枚举类、静态代码块等方式实现饿汉式,通过非线程安全、同步方法、同步代码块、双重检查锁定和静态内部类等方式实现懒汉式。文章还对比了各种实现方式的优缺点,帮助读者在实际项目中做出更好的设计决策。
729 0
|
XML Java 数据格式
Android_三种常用Menu菜单(附源码)
记录一下我写菜单的代码,我写了一共有三种菜单,从常用到不常用。
512 0
|
算法 数据处理 调度
我画了 40 张图就是为了让你搞懂计算机网络层(一)
前面我们学习了运输层如何为客户端和服务器输送数据的,提供进程端到端的通信。那么下面我们将学习网络层实际上是怎样实现主机到主机的通信服务的。几乎每个端系统都有网络层这一部分。所以,网络层必然是很复杂的。下面我将花费大量篇幅来介绍一下计算机网络层的知识。
我画了 40 张图就是为了让你搞懂计算机网络层(一)
|
Windows
升级了 Windows 11 正式版,有坑吗?(1)
升级了 Windows 11 正式版,有坑吗?(1)
358 0
升级了 Windows 11 正式版,有坑吗?(1)
突破Java面试(23-4) - 再深入Redis Replication的完整执行流程及原理
0 Github 1 复制的完整流程 slave node启动,仅仅保存master node的信息,包括master node的host和ip,但复制流程尚未开始master host和ip配置在 redis.
11802 0
|
SQL 监控 Linux
<Google Cloud Logging>调研
2015年3月做的Google Cloud Logging新产品调研,转给感兴趣的同学
3239 0
|
关系型数据库 MySQL 数据库
mysql update使用子查询
<div class="markdown_views"> <p>今天我像以前操作Oracle写了一个update sql:</p> <pre class="prettyprint"><code class=" hljs sql"><span class="hljs-operator"><span class="hljs-keyword">update</span> dev
3920 0
|
2天前
|
云安全 人工智能 运维
当攻击全面Agent化,你的安全防御能否跟上AI Speed?
多起客户侧AK泄露事件应急的真实观察
1200 1
|
25天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
9593 32

热门文章

最新文章