Vue 3 setup

news/发布时间2024/5/18 12:41:07

【一】setup函数

setup函数的设计是为了使用vue3的组合式api,setup函数必须要有返回值,在里面定义的变量必须要返回出去才能在html里面使用

【1】定义变量

setup() {// 1.定义变量 跟正常写js是一样的let name = 'hqq'let age = 18 // setup函数必须要有返回值,返回定义的对象后才能使用这个对象return {name, age}}

【2】定义函数

setup() {// 2.定义函数let handleAdd = () => {age++ }let handleChangeName = (n) => {name = n}// setup函数必须要有返回值,返回定义的对象后才能使用这个对象return {handleAdd, handleChangeName}}

【二】实现响应式

上面定义的变量是没办法实现响应式的,如果要实现响应式,给变量用ref或者reactive函数包裹,使其变成对象,这时候他的值就存在了对象的value属性里面

【1】ref函数

  setup() {// 1.定义变量 跟正常写js是一样的let name = ref('hqq')let age = ref(18) //用ref包裹实现响应式// 2.定义函数let handleAdd = () => {age.value++ // age用ref包裹之后就变成了一个对象,它的值在这个对象value里面,所以需要.value++}let handleChangeName = (n) => {name.value = n}// setup函数必须要有返回值,返回定义的对象后才能使用这个对象return {name, age, handleAdd, handleChangeName}}

【2】recative函数

  setup() {// 1.定义对象 要想对象里面的内容实现响应式,就需要用reactive函数包裹起来对象let userInfo = reactive({name: 'hqq',age: 18,hobby: '运动'})// 2.定义函数let handleAdd = () => {userInfo.age++}return {userInfo, handleAdd}}

【三】计算属性

计算属性computed,需要导入使用,computed函数包含一个对象,对象里面可以写两个函数,get和set,get用于获取值,必须要有返回值,返回值就是获取的值,set用于修改值,set函数有一个参数,就是修改后的值。

【1】get函数

setup() {// 定义一个userName对象,里面定义firstname和lastnamelet userName = reactive({firstName: '',lastName: ''})// 计算属性computed里面填写一个对象// 对象里面可以写两个函数 get 和 setuserName.fullName = computed({// get函数是用于获取值 必须要有返回值get(){return userName.firstName + userName.lastName}})return {userName}}

【2】set函数

  setup() {// 定义一个userName对象,里面定义firstname和lastnamelet userName = reactive({firstName: '',lastName: ''})userName.fullName = computed({get(){...},// set函数用于修改值,可以传一个参数,这个参数就是修改后的值set(value){// 这里面可以写修改的逻辑console.log(value)}})return {userName}}

【四】监听属性

【1】监听一个对象

  setup() {let age = ref(18)let handleAdd = () => {age.value++}// 监听一个对象// 监听属性watch函数,第一个参数写监听的对象,// 第二个参数是一个函数,函数的有两个参数,分别是修改后的数据和修改前的数据watch(age, (newValue, oldValue) => {console.log('新年龄' + newValue)console.log('老年龄' + oldValue)})return {age, handleAdd}}

【2】监听对象里的某个值

  setup() {// 定义一个对象let person = reactive({name: 'hqq',age: 18,hobby: '运动'})}// 定义点击事件 点击对象的name变成吴彦祖let handleChangeName = () => {person.name = '吴彦祖'}// 监听对象的某个值// watch函数的第一个参数也变成了一个函数,需要返回一个需要监听的值// 第二个参数是一个函数,函数的有两个参数,分别是修改后的数据和修改前的数据watch(() => person.name, (newValue, oldValue) => {// 在这里可以写一些变化后的逻辑console.log('变吴彦祖啦')})return {age, handleAdd, person, handleChangeName}}

【五】生命周期

【六】toRefs

​ 在Vue 3中,toRefs函数是一个实用工具,用于将响应式对象转换为可被解构的引用对象。在Vue 2中,直接使用refreactive创建的响应式对象,如果直接解构或访问其属性,会导致丢失响应性。而toRefs可以解决这个问题。

<template><main><p>姓名---{{name}}</p><p>年龄---{{age}}</p><p>爱好---{{ hobby}}</p></main>
</template><script>
import {toRefs} from "vue";export default {name: 'home',setup() {// 使用了toRefs包裹起来对象之后 person就变成了一个可被解构的响应式对象let person = toRefs({name: 'hqq',age: 18,hobby: '运动'})// 通过...展开,就可以直接在html中以键名获取对应的valuereturn {...person}}}
</script>

【七】script setup语法糖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/41167748.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

linux23-网络传输

linux23-网络传输使用ping检查服务器是否连通使用wget下载文件使用curl发起网络请求ping ping [-c num] ip或主机名-c 检查次数, 不使用-c选项会无限次数持续价差参数: 被检查的服务器IP地址或主机名地址检查baidu.com是否联通 ping baidu.com检查baidu.com是否联通, 检查三次 …

深入学习和理解Django视图层:处理请求与响应

title: 深入学习和理解Django视图层:处理请求与响应 date: 2024/5/4 17:47:55 updated: 2024/5/4 17:47:55 categories:后端开发tags:Django 请求处理 响应生成 模板渲染 表单处理 中间件 异常处理第一章:Django框架概述 1.1 什么是Django? Django是一个高级的Python Web框架…

[openbve站]oldhelps openbve站v0.0.2推出上线公测

[openbve站]oldhelps openbve站v0.0.2推出上线公测 目录[openbve站]oldhelps openbve站v0.0.2推出上线公测1.归档页面增加图片显示 今天(5.4)起,openbve站上线第二个版本。此次更新的主要内容: 1.归档页面增加图片显示

python教程3.3:字符和编码

1、二进制 计算机只能存储和识别二进制,但是人类常用的字母、数字、汉字怎么用计算机存储和识别呢? 人类强行约定一个对应表,把数字、字母和数字进行对应上,这样就可以用二进制表示字母和数字了。 2、ASCII编码 ASCII是美国于1967年创建,只有127个字母和数字(后面扩展128个…

团队作业3--需求改进系统设计

这个作业属于哪个课程 软件工程这个作业要求在哪里 团队作业3--需求改进&系统设计这个作业的目标 明确需求、改进原型、系统设计和测试需求团队Gitee仓库链接 Gitee鏈接团队成员:姓名 学号蔡梓严(队长) 3122004686刘睿 3122004697吴炳辉 3122004709陈翼 3122006207林诗芸…

DNF pvf 各版本客户端下载大全

整个客户端,pvf文件占1600多个G全部版本文件获取: https://githubs.xyz/y16.html60版本,70版本,86,86版本,90等全部都有纯净月魂86版本月魂的初版,没有任何修改。 怪物难度强度大。也是我最推荐的版本。朝暮,追忆,原仿官都有。 算了,我摊牌了,基本上什么版本都有。6…