当前位置: 首页 > article >正文

vue3 ref的用法及click事件的说明

1、ref可以定义一个简单的属性,也可以是一个复杂的列表、数组等等。

2、为什么要使用 ref?简单的let个变量不行吗?const个变量不行吗?

      其实这个跟vue的响应式的系统有关,官方的说明如下:

3、为 ref() 标注类型

一般我们直接赋string的时候,会自动推导出是string,但是我们在开发的过程中会经常遇到,可能要赋个日期型的,比如 dayjs,然后我们传到服务器的时候,是一个string类型,这样我们就要指导类型,让系统知道我们的编写是正确的。

4、深层响应性

5、@click

绑定到一个方法/函数。 这个 @click 语法是 v-on:click 的简写。也就是可以直接@click="func名",也可以v-on:click="func名"。

6、简单的官方事例:

https://cn.vuejs.org/examples/#handling-input

<!--
这个示例展示了如何通过 v-on 指令处理用户输入。
-->

<script setup>
import { ref } from 'vue'

const message = ref('Hello World!')

function reverseMessage() {
  // 通过其 .value 属性
  // 访问/修改一个 ref 的值。
  message.value = message.value.split('').reverse().join('')
}

function notify() {
  alert('navigation was prevented.')
}
</script>

<template>
  <!--
    注意我们不需要在模板中写 .value,
    因为在模板中 ref 会自动“解包”。
  -->
  <h1>{{ message }}</h1>

  <!--
    绑定到一个方法/函数。
    这个 @click 语法是 v-on:click 的简写。
  -->
  <button @click="reverseMessage">Reverse Message</button>

  <!-- 也可以写成一个内联表达式语句 -->
  <button @click="message += '!'">Append "!"</button>

  <!--
    Vue 也为一些像 e.preventDefault() 和 e.stopPropagation()
    这样的常见任务提供了修饰符。
  -->
  <a href="https://vuejs.org" @click.prevent="notify">
    A link with e.preventDefault()
  </a>
</template>

<style>
button, a {
  display: block;
  margin-bottom: 1em;
}
</style>

7、运行结果:

8、总结

ref可以定义类型,也可以不指定通过类型推导出来,ref是响应式的,也就是说你修改了,会自动去更新UI,而普通的变量不会,ref在template中引用的时候,不需要.vaue,会自动解包。

在script中引用的时候,一定要加上.value或者unref(变量),否则是要报错的。


http://www.kler.cn/news/309252.html

相关文章:

  • 使用 uni-app 开发微信小程序的详细指南
  • go mod文件为啥又两个require
  • C#使用TCP-S7协议读写西门子PLC(四)
  • Qt常用控件——QDateTimeEdit
  • 【华为OD】2024D卷——生成哈夫曼树
  • CAD图纸加密软件哪个好?10款2024主流CAD图纸加密软件分享!
  • 如何利用Samba跨平台分享Ubuntu文件夹
  • 电路设计学习(一)
  • 【Day14-单例设计模式动态代理】
  • 一文吃透JVM面试八股文
  • 每日学习一个数据结构-DFA确定有限状态机
  • 【linux】VisiData:强大的命令行数据处理工具
  • 跟李沐学AI:序列到序列seq2seq
  • 本地部署大模型并使用知识库Windows下Ollama+Docker+MaxKB安装的记录
  • 影刀RPE学习——自动化
  • 地大信息-基础信息平台 GetImg 任意文件读取漏洞复现
  • http和https分别是什么?区别是什么?
  • GO GIN SSE DEMO
  • Springboot项目打war包运行及错误解决
  • SpringCloud Alibaba入门简介
  • 最优化理论与自动驾驶(一):概述
  • 你认为嵌入式软件开发的尽头是什么?
  • 了解 React 应用程序中的渲染和重新渲染:它们如何工作以及如何优化它们
  • NEXT.js 中间件 NextResponse.redirect 无效
  • 2576. 求出最多标记下标(24.9.12)
  • 【C/C++】涉及string类的经典OJ编程题
  • Mina protocol - 体验教程
  • 【每日一题】LeetCode 1184.公交站间的距离问题(数组)
  • 【大模型技术教程】FastGPT一站式解决方案[1-部署篇]:轻松实现RAG-智能问答系统
  • C语言习题~day32