Vue--第八天

Vue3

1.优点:

2.创建:

3.文件:

换运行插件:

4.运行:

setup函数:

setup函数中获取不到this(this 在定义的时候是Undefined)

reactive()和ref():

代码:

<script setup>

// reactive :接收一个对象类型的数据。返回一个响应式的对象

import { reactive } from 'vue'

import { ref } from 'vue'

// 只有用 reactive() 包裹的对象才能去响应式改变,否则不能改变

// 倘若是简单类型的对象,我们用ref(),但是这个简单和复杂都可以接受,

// 本质是自动增加了外层对象,使之成为复杂类型,再借助reactive实现的响应式

// 注意点: 1.script中访问数据,需要通过 .value

// 2.template 中不用,因为自动加了.value

// 推荐  数据定义同一用ref()

const state = reactive({

  count: 100

})

const stateTwo = ref(10)

const setCount = () => {

  state.count++

}

const setCountRef = () => {

  stateTwo.value++

}

</script>

<template>

  <div>

    <div>{{ state.count }}</div>

    <div>{{ stateTwo.value }}</div>

    <button @click="setCount">+1</button>

    <button @click="setCountRef">+1</button>

  </div>

</template>

<style></style>

computed:

有读和写两种方法:get 和 set ,但是我们一般用只读,改的话另外写函数

<script setup>

import { ref, computed } from 'vue'

const list = ref([1, 2, 3, 4, 5, 6, 7, 8, 9])

const computedList = computed(() => {

  // 在这里拿值别忘了 .value

  return list.value.filter(item => item > 5)

})

</script>

<template>

  <div>

    <div>计算后属性:{{ computedList }}</div>

  </div>

</template>

<style></style>

watch函数:

侦听不要加value,我们侦听对象,不是单个数字

immediate:
deep:

代码:

<script setup>

import { ref, watch } from 'vue'

const count = ref(0)

const nickname = ref('张三')

const changeName = () => {

  nickname.value = '李四'

}

const changeCount = () => {

  count.value++

}

// 1.单个对象   这个新值老值是函数固定好了的,不是我们想改就能改的

// watch( count,(newValue,oldValue) => {

//    console.log( newValue,oldValue)

// })

// 2.多个对象

// watch([count,nickname], (newArr,oldArr) =>{

//   console.log(newArr,oldArr)

// })

// 3.immediate: 一进页面就执行,从空数组变为有值的数组

// watch([count, nickname], (newArr,oldArr) => {

//   console.log(newArr,oldArr)

// },{

//    immediate: true

// })

// 4.deep 深度监视默认 watch进行的是浅层监视

// 1.const ref1 = ref(简单类型)可以直接监视

// 2.const ref2 = ref(复杂类型)监视不到复杂类型内部数据的变化

const userInfo = ref({

  name: '张三',

  age: 18

})

const setUserInfo = () => {

  userInfo.value.age++

}

watch(userInfo, (newValue) => {

  console.log(newValue)

}, {

  immediate: true,

  // 不加deep 监视不到对象

  deep: true

})

</script>

<template>

  <div>

    <div>{{ count }}</div>

    <button @click="changeCount">数字</button>

    <div>{{ nickname }}</div>

    <button @click="changeName">昵称</button>

    <div>{{ userInfo }}</div>

    <button @click="setUserInfo">年龄+1</button>

  </div>

</template>

<style></style>

精准监听:

代码:

// 5.对于对象中的属性,进行精准监听,不确定加没加imediate函数

watch(() => userInfo.value.age,(newValue, oldValue) => {

  console.log(oldValue, newValue)

})

5.周期函数:

代码:

<script setup>

import { onMounted } from 'vue';

const getList = () => {

  setTimeout(() => {

    console.log('发送请求获取数据')

  },2000)

}

getList()

// 如果有写代码需要在mounted生命周期中执行

onMounted(() => {

  console.log('mounted生命周期,可以提供多个')

})

</script>

<template>

  <div></div>

</template>

<style></style>

6.父子通信

代码:

<script setup>

import { ref, onMounted } from 'vue'

import sonCom from '@/components/sonCom.vue'

const money = ref(101)

const getMoney = () => {

  money.value = money.value + 10

}

const getList = () => {

  setTimeout(() => {

    console.log('发送请求获取数据')

  },2000)

}

const changeFn = (use) => {

  money.value = money.value - use

}

getList()

// 如果有写代码需要在mounted生命周期中执行

onMounted(() => {

  console.log('mounted生命周期,可以提供多个')

})


 

</script>

<template>

  <div>

    <sonCom car = '宝马车'

    :money="money"

    @changeMoney = 'changeFn'>

  </sonCom>

  </div>

  <button @click="getMoney">挣钱</button>

</template>

<style></style>

<script setup>

// 子组件

// 在这里接收父组件的方式需要借助 '编译器宏'函数,感觉还是以对象的形式封装

const props = defineProps({

    car: String,

    money: Number

})

console.log(props.car)

console.log(props.money)

const emit = defineEmits(['changeMoney'])

const delMoney = () => {

    // 需要emit触发事件

    emit('changeMoney',10)

}

</script>

<template>

    <!-- 对于props传递来的数据,模板中可以直接使用,不用去接收.动态传值也一样 -->

    <div>{{ car }}--{{ money }}</div>

    <div class='son'>我是子组件</div>

    <button @click='delMoney'>花钱</button>

</template>

<style>

.son {

    height: 300px;

    width: 300px;

    border: 2px;

    background-color: greenyellow;

}

</style>

7.模板引用:

通过ref标识获取真实的dom对象或者组件实例对象

代码:

<script setup>

// 模板引用

// 1.调用函数,生成ref对象

// 2.通过ref标识,进行绑定

// 3.通过ref对象.value即可访问到绑定的元素

import {onMounted, ref} from 'vue'

const inp = ref(null)

onMounted(() =>{

  // console.log(inp.value.focus())

  // inp.value.focus()

})

const clickFn = () => {

  inp.value.focus()

}

</script>

<template>

<div>

  <input ref="inp" type = 'text'>

  <button @click="clickFn">点击输入框聚焦</button>

</div>

</template>

<style></style>

8.provide 和inject 

10.defineOptions:

11. v-model 和 defineModel:

需要有如下配置:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

测试总监给我分享的《接口自动化测试》总结,让我成功的入门接口自动化门槛......

前两天在测试技术交流群里&#xff0c;听了一位字节跳动的测试总监分享的接口自动化测试的内容&#xff0c;对接口自动化更加了解了&#xff0c;也为自己接下来在公司实施接口自动化项目提供了思路。 前言 自动化测试&#xff0c;算是近几年比较火热的一个话题&#xff0c;当…

AcWing 1229. 日期问题(反向求解)

题目&#xff1a; 1229. 日期问题 - AcWing题库 思路&#xff1a; 逆向思考 由 02/03/04 寻找 2002-03-04 2004-02-03 2004-03-02 -------> 在19500101到19591231之间寻找&#xff1a;1.满足日期格式的的数满足可表示为02/03/04的数 注意: 特殊格式的输入输出用…

IDEA配置ctrl + / 快捷键注释的位置

对于一个强迫症患者来说&#xff0c;Ctrl / 这个日常使用非常频繁的快捷键默认生成的位置是在每一个的顶格位置&#xff0c;这让我非常苦恼。 刚刚找到了解决方案&#xff0c;分享一下&#xff0c;_ 在IntelliJ IDEA中&#xff0c;如果你想要注释符号紧挨着代码的第一个字母…

(WPF)Serilog 使用demo实例

Serilog 日志效果&#xff1a; 引入的Serilog库文件 实现代码 xaml 代码&#xff1a; <Window x:Class"Wpf_demo_Serilog.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://sche…

Keil uVersion 4单片机开发指南

1 软件安装 双击打开C51V901.exe 弹出安装界面&#xff0c;点击Next>> 点击同意协议勾选框&#xff0c;接着点击Next>> 点击Browse...选择合适的目录&#xff0c;接着点击Next>> 按要求填写相关信息&#xff0c;然后点击Next>> 软件安装中&#xff0c…

【SpringBoot】配置文件

配置文件官网 1. 配置方式 application.propertiesapplication.yml / application.yaml 2. 自定义配置信息 将实体类中的本应该写死的信息写在属性配置文件中。 可以使用 Value("${键名}") 获取&#xff0c;也可以使用 ConfigurationProperties(prefix"前…

ISCTF(CRYPTO)

easy_rsa nc连接看看 脚本 import gmpy2import libnumfrom Crypto.Util.number import *from binascii import a2b_hex, b2a_hexflag "*****************"p 11920076502966619778438716819444048800827104655497817807132072529253600622832779629686654276924193…

2024年外贸开发客户攻略,外国客户都在用哪些社交平台?

在之前的文章中&#xff0c;东哥我就讲过做外贸&#xff0c;开发客户很重要&#xff0c;我也曾经总结了几个外贸开发客户的方法给大家参考&#xff0c;不知道大家学会了没&#xff1f;都知道大多数客户喜欢花大量时间泡在社交软件上&#xff0c;所以有不少兄弟对海外社交媒体平…

蓝桥杯真题——01背包问题(java详解)

目录 01背包问题例题引入 蓝桥杯国赛真题 蓝桥杯2195题.费用报销 蓝桥杯2201题.搬砖 01背包问题和最值问题离不开&#xff0c;最值问题嘛&#xff0c;就又和动态规划离不开&#xff0c;大家不太了解动态规划的可以看我之前写的文章&#xff0c;基础版里面有动态规划的模板。…

中文字符串逆序输出

今天碰到这个题&#xff0c;让我逆序输出中文字符串&#xff0c;可给我烦死了&#xff0c;之前没有遇到过&#xff0c;也是查了资料才知道&#xff0c;让我太汗颜了。 英文字符串逆序输出很容易&#xff0c;开辟一块空间用来存放逆序后的字符串&#xff0c;从后往前遍历原字符串…

西南交通大学【数电实验8---外星萤火虫设计】

一、实验电路图、状态图、程序代码、仿真代码、仿真波形图&#xff08;可以只写出核心功能代码&#xff0c;代码要有注释&#xff09; 代码文件 激励文件 Modelsim仿真 二、引脚分配表&#xff08;电路中的信号名称->主板器件名称->引脚号PIN&#xff09; 信号名 主板器…

【C++初阶】类与对象(上)

类与对象&#xff08;上&#xff09; 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符4.2 封装 5.类的作用域6.类的实例化7.类对象模型7.1 如何计算类对象的大小7.2 结构体内存对齐规则 8.this指针8.1 this指针的引出8.2 this指针的特性…

微软microsoft推出了最新的小型但强大的开源语言AI模型Phi-2

微软推出了最新的小型开源语言模型 Phi-2。该模型只有 27 亿个参数&#xff0c;却能超过比它大 25 倍的模型的性能。Phi-2 是微软 Phi 项目的一部分&#xff0c;旨在制作小而强大的语言模型。该项目包括 13 亿参数的 Phi-1&#xff0c;据称在 Python 编码方面实现了最先进的性能…

如何使用mysql去除表中重复的字段

简介&#xff1a; 此处的建表题目来自我们的也门哥Maged&#xff0c;非常感谢他出的这些测试题目&#xff0c;让我能够独立思考&#xff0c;反复试去找到cw2的正确做法。 数据库准备&#xff1a; 害怕被好homi被刺然后被 academic warning 所以浅浅打个码。 创建好这张表后我…

ipad协议限制号版

特别声明&#xff1a;仅供学习交流 Applet显示/隐藏显示操作展开操作 POST /api/Applet/GetRandomAvatar 提取一个随机昵称和照片 POST /api/Applet/UploadAvatarImg 上传小程序身份照片 POST /api/Applet/AddAvatar 增加一个小程序身份 POST /api/Applet/OauthSdkApp 授权A…

ShellCode注入程序

程序功能是利用NtQueueApcThreadEx注入ShellCode到一个进程中&#xff0c;程序运行后会让你选择模式&#xff0c;按1为普通模式&#xff0c;所需的常规API接口都是使用Windows原本正常的API&#xff1b;在有游戏保护的进程中Windows原本正常的API无法使用&#xff0c;这时候需要…

绘图示例---QT手动调用绘图事件,按钮控制图片

效果&#xff1a; 点击 “移动” 图片向右移动20&#xff0c;点击 “西理win嘛” 图片每秒向右移动20 QQ录屏20231212164128 下面时代码详解&#xff1a; 注意使用UI和代码实现按钮的不同 UI: ui->pushButton->setGeometry(windowWidth-105, windowHeight-25, 100, 20);…

ChatGPT 也宕机了?如何预防 DDOS 攻击的发生

最近&#xff0c;开发人工智能聊天机器人的公司 OpenAI 遭受了一次规模较大的分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;导致其旗下的 ChatGPT 服务在短短 12 小时内遭遇了 4 次断网&#xff0c;众多用户遭受了连接失败的问题。 这次攻击事件引起了广泛的关…

C++ stringOJ练习题

目录 把字符串转换成整数 反转字符串 字符串中的第一个唯一字符 字符串最后一个单词的长度 找出字符串中第一个只出现一次的字符 字符串相加 字符串最后一个单词长度 字符串相乘 反转字符串3 反转字符串2 验证回文串 把字符串转换成整数 通过遍历字符串并逐位转换…

漏洞复现-浙大恩特客户资源管理系统CustomerAction.entphone;.js 接口任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…