首页 > 编程语言 >Java登陆第三十六天——VUE3响应式入门、setup语法糖

Java登陆第三十六天——VUE3响应式入门、setup语法糖

时间:2024-04-02 23:56:43浏览次数:31  
标签:vue Java show setup addsum showsum 第三十六 sum

当浏览器接收到服务端返回的页面后,浏览器会把页面解析成DOM树,DOM树中各个元素会相应的显示在浏览器上。

VUE提供的响应式数据可以在页面不刷新的情况下更新数据。

响应式数据

App.vue

<script>
//等价于setup语法糖。固定的写法,不会改。
export default {
  setup() {
    let sum = 0;
    function addsum() {
      sum++;
    }
    function showsum() {
      alert(sum);
    }
    //把sum字段和方法addsum,showsum暴露。否则外部无法使用。
    return {
      sum,
      addsum,
      showsum
    }
  }
}
</script>

<template>
<!--给button绑定点击事件 等价于<button onclick="showsum()">show</button> -->
  <button @click="showsum()">show</button>
<!--VUE的命令,后期会学习到,可以理解为把sum的值,放到p标签的文本节点中-->
  <p v-text="sum"></p>
  <button @click="addsum()">sum+1</button>
</template>

<style scoped>
</style>

效果展示
image

理想的情况下,应该是点击sum+1按钮,0会被更新到1,并且点击show按钮会正确的弹窗显示1。

点击sum+1按钮三下,0也没有被更新。点击show却正确的弹窗显示了3。

image

为什么呢?
	因为VUE3和VUE2不同。
	VUE2中的数据默认是响应式的。
	VUE3需要使用VUE3提供ref函数或者reactive函数,处理后的数据才是响应式数据。

如何使用这两个函数?

从vue框架中直接引入即可。
import {ref} from 'vue'
import {reactive} from 'vue'

修改sum为响应式数据。

App.vue

<script>
//从vue框架中引入ref函数
import {ref} from 'vue';
export default {
  setup() {
    //该方法返回值是一个对象 等价于 let sum = {value:0}
    let sum = ref(0);
    function addsum() {
      sum.value++;
    }
    function showsum() {
      alert(sum.value);
    }
    //把sum字段和方法addsum,showsum暴露。否则外部无法使用。
    return {
      sum,
      addsum,
      showsum
    }
  }
}
</script>

<template>
<!--给button绑定点击事件 等价于<button onclick="showsum()">show</button> -->
  <button @click="showsum()">show</button>
<!--VUE的命令,后期会学习到,可以理解为把sum的值,放到p标签的文本节点中-->
  <p v-text="sum"></p>
  <button @click="addsum()">sum+1</button>
</template>

<style scoped>
</style>

效果展示
image
此时点击sum+1按钮会正确的更新数据。

setup语法糖

因为setup是固定的写法

export default {
  setup() {
//需要编写的仅仅是这里面的内容,所以VUE提供了一种语法糖。
  }
}
<script setup>

</script>

上下等价

<script>
export default {
  setup() {

  }
}
</script>

标签:vue,Java,show,setup,addsum,showsum,第三十六,sum
From: https://www.cnblogs.com/rowbed/p/18111745

相关文章

  • Java(对象数组与继承性的一些特点)
    1.数组是语言中重要的一种数据类型,我们常用于大型数据处理,当我们需要创建某类的许多对象,为了提高效率,Java中提供了对象数组,即将对象作为引用类型。a.使用对象数组时必须为每个元素赋值;b.构建对象数组时与平常数组构造相似,类名[]数组名=new类名[对象个数];2.代码展示—......
  • java中获取项目路径包路径域名classpath路径buildPath路径
    /** *获取项目路径 *@returnnull或项目路径 *@throwsIOException */ publicstaticStringgetPojectPath(){ Filedirectory=newFile("");//参数为空 try{ returndirectory.getCanonicalPath(); }catch(IOExceptione){ e.printStackT......
  • java图片压缩
    /*** *按指定的比例缩放图片 * *@paramsourceImagePath *源地址 *@paramdestinationPath *改变大小后图片的地址 *@paramscale *缩放比例,如1.2 */ publicstaticvoidscaleImage(Stringsource......
  • 2024年最新github之Javascript语言开源项目top50排行榜项目
    如果有帮助到您还请动动手帮忙点赞,关注,评论转发,感谢啦!......
  • javaweb学习(day11-监听器Listener&&过滤器Filter)
    一、监听器Listener1 Listener介绍Listener监听器它是JavaWeb的三大组件之一。JavaWeb的三大组件分别是:Servlet程序、Listener监听器、Filter过滤器Listener是JavaEE的规范,就是接口监听器的作用是,监听某种变化(一般就是对象创建/销毁,属性变化),触发对应方......
  • 瑞_Java所有相关环境及软件的安装和卸载_图文超详细(持续更新)
    文章目录JDK1.8资源准备各种可能的坑Windows环境卸载安装VMware虚拟机资源准备官方资源网盘资源安装步骤许可证检查安装是否成功LinuxCentOS7资源准备官方资源网盘资源卸载安装步骤MobaXterm(远程连接工具)资源准备官方资源网盘资源......
  • 简直了,被“Java并发锁”问题追问到自闭...
    故事地铁上,小帅双目空洞地望着窗外...绝望,发自内心地感到绝望...距离失业已经过去两个月了,这是小帅接到的第四次面试邀请。“回去等通知吧...”,简简单单的六个字,把小帅的心再次打入了冰窖。上次“【ThreadLocal问出花】”,小帅其实也有吸取教训得,这次对于多线程的问题还是做了......
  • Java 读取MacOS 本地的 rtf 文件内容:中英文皆可
    原是抄的大神的源码,东拼西凑的找了大半天,已忘记原链接了。特此声明⭐️本人不生产代码,只是代码的搬运工。 /***用换行符讲读取的整个文档内容截取成若干字符串*/publicstaticString[]interfacePath;//读取本地文件内容publicstaticvoidch......
  • 【知识点】Java代理实现方式
    Java代理的几种实现方式静态代理通过创建一个代理类来控制对目标对象的访问(也就是手动编写一个代理类)。静态代理的优点是易于理解和实现,缺点是每个接口都需要定义一个代理类,而且功能较弱。动态代理动态代理分两种,Proxy接口代理和CGLib代理接口代理Proxy代理是JDK内置代理......
  • Java基础
    Java标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于Java标识符,有以下几点需要注意:所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合关键字不......