vue3实践

news2024/11/28 8:37:18
选项式API和组合式API

1、使用选项式 API,用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例。
2、组合式 API,我们可以使用导入的 API 函数来描述组件逻辑
在这里插入图片描述

创建 vue3 项目

node本版:node 16.x.x,
脚手架:create-vue 脚手架工具,底层vite
创建vue3项目:npm init vue@latest
setup函数

vue3 单文件组件

1、vite.config.js配置文件基于vite的配置
2、template模板不再要求唯一根元素
3、script和template调整顺序(模板和样式在一起更容易维护)

vue3 根

1、以app作为参数生产一个应用实例对象
2、挂载到id为app的节点上

组合式API

1、return 数据和方法

<script lang="ts">
import { defineComponent } from 'vue'

export default defineComponent({
  setup() {
    const message='我在学习vue3!'
    return {
      message
    }
  },
})
</script>
<template>
  <div>{{message}}</div>
</template>

os

<script setup>
    const message='我在学习vue3!'
</script>
<template>
  <div>{{message}}</div>
</template>

2、setup选择在beforecreate函数之前 自动执行
3、<script setup>语法糖(经过一系列的封装,将复杂的写法简单化),在线编译工具
4、this是undefined

组合式API- reactive函数作用:接受对象类型数据的参数传入并返回一个响应式的对象
<script setup>
// 1、导入函数
import { reactive} from 'vue'

// 2、执行函数 传入一个对象类型的参数 变量接收
const state = reactive({
  count:0
  })

const setCount = ()=>{
  state.count++
}
</script>

<template>
<div>
 <button @click="setCount">{{state.count}}</button> 
</div>
</template>
组合式API-ref函数作用:接收简单类型或者对象类型的数据传入并返回一个响应式的对象
<script setup>
// 1、导入函数
import { ref} from 'vue'
// 2、执行函数 作用:接收简单类型或者对象类型的数据传入并返回一个响应式的对象
const count = ref(0)
console.log(count)
const setCount2 = ()=>{
  // 脚本区域修改ref产生的响应是对象数据 必须通过.value属性
  count.value++
}
</script>

<template>
<div>
  <button @click="setCount2">{{count}}</button>
</div>
</template>
组合式API-computed计算属性函数
<script setup>
import {ref} from 'vue'
// 1、导入computed
import {computed} from 'vue'
const list = ref([1,2,3,4,5,6,7,8])
// 2、执行函数 return 计算之后的值 变量接收
const  computedList = computed(()=>{
  return list.value.filter(item=>item>2)
})

// setTimeout(() => {
//   list.value.push(9,10)
// }, 3000);

</script>
<template>
  <div>
    原始响应式数据 - {{list}}
  </div>
  <div>
    计算属性数组 - {{computedList}}
  </div>
</template>

小结:
1、计算属性不应该有副作用:比如异步请求/修改dom
2、避免直接修改计算属性的值:计算属性应该是只读的

组合式API-watch计算属性函数
//监听单个属性
 <script setup>
// 1、导入watch
import {ref,watch} from 'vue'
const count = ref(0)

const setCount = ()=>{
  count.value++
}
// 2、调用watch
watch(count,(newValue,oldValue)=>{
  console.log(newValue,oldValue)
},{
  immediate:true
})
</script>
<template>
  <div>
    <button @click="setCount">{{count}}</button>
  </div>
</template>  

//监听多个属性
<script setup>
// 1、导入watch
import {ref,watch} from 'vue'

const count = ref(0)
const setCount = ()=>{
  count.value++
}

const name=ref('pc')
const changeName=()=>{
  name.value='cp'
}
// 2、调用watch
watch(
  [count,name],
  (
    [newCount,newName],
    [oldCount,oldName]
    )=>{
  console.log('count',newCount,oldCount)
  console.log('name',newName,oldName)
})



</script>
<template>
  <div>
    <button @click="setCount">修改count--{{count}}</button>
  </div>
  <div>
    <button @click="changeName">修改name--{{name}}</button>
  </div>
</template>

//精确监听
<script setup>
import {ref,watch} from 'vue'
const info=ref({
  name:'cp',
  age:18
})
const changeName=()=>{
  info.value.name='chunchunzhang'
}
watch(
  ()=>info.value.name,
  ()=>console.log('name改变了')
)
</script>
<template>
  <div>{{info.name}}</div>
  <button @click="changeName">button</button>
</template>

小结:
1、作为watch函数的第一个参数,ref对象需要添加.value吗
不需要,watch会自动读取
2、watch只能侦听单个数据吗
单个或者多个
3、不开启deep,直接修改嵌套的属性能触发监听回调吗
不能,默认是浅层侦听
4、不开启deep,想在某个层次比较深的属性变化时执行回调怎么做
可以把第一个参数写成函数的写法,返回要监听的具体属性

组合式API-生命周期函数

在这里插入图片描述
基本使用规则:
1、引入函数
2、执行函数 传入回调
3、执行多次,按顺序依次执行
例子:其他用法类似

<script setup>
import { onMounted } from 'vue'
onMounted(()=>{
    console.log('组件执行挂载完毕1')
})
onMounted(()=>{
    console.log('组件执行挂载完毕2')
})
</script>
组合API-父子组件通信

a、父传子
1、父传子过程中通过什么方式接收props?
defineProps({属性名:类型})
2、setup语法糖中如果使用父组件传过来的数据?
const props=defineProps({属性名:类型})
子传父
1、子传父的过程中通过什么方式得到emit方法
defineEmits(['事件名称'])

组合API-模板引用

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4、Python基本数据类型:数字、字符串、列表、元组、集合、字典

文章目录 1、Python基本数据类型简介2、数字3、字符串4、列表5、元组6、集合7、字典1、Python基本数据类型简介 Python是一种非常强大且易于学习的编程语言,它具有简洁的语法和丰富的数据类型。了解和掌握Python的基本数据类型是学习和使用Python的基础。本文将详细介绍Pytho…

Qt 继承QAbstractListModel实现自定义ListModel

1.简介 QAbstractListModel类提供了一个抽象模型&#xff0c;可以将其子类化以创建一维列表模型。 QAbstractListModel为将其数据表示为简单的非层次项目序列的模型提供了一个标准接口。它不直接使用&#xff0c;但必须进行子类化。 由于该模型提供了比QAbstractItemModel更…

今天放个大招,带你手把手搭建 Jenkins 的分布式构建

UI 自动化测试代码写完了以后&#xff0c;会放到 Jenkins 这样的持续集成工具上去构建。 如果 Jenkins 平台是搭建在服务器上&#xff0c;会面临 2 个问题&#xff1a; 第一个问题是 UI 自动化测试需要渲染界面&#xff0c;需要消耗大量的 CPU 和内存资源&#xff0c;如果服务…

【3D图像分割】基于Pytorch的VNet 3D 图像分割5(改写数据流篇)

在这篇文章&#xff1a;【3D 图像分割】基于 Pytorch 的 VNet 3D 图像分割2&#xff08;基础数据流篇&#xff09; 的最后&#xff0c;我们提到了&#xff1a; 在采用vent模型进行3d数据的分割训练任务中&#xff0c;输入大小是16*96*96&#xff0c;这个的裁剪是放到Dataset类…

家用好物风云汇,值得买风尚购物清单

双十一又要来啦&#xff01;作为购物狂热者的我们&#xff0c;肯定早已经在各大电商平台上准备好了购物清单。但是&#xff0c;如果你还没有找到心仪的好物&#xff0c;那么不妨来看看值得买在线上线下的选品活动。 最近&#xff0c;我在风尚场发现了很多值得买的家用好物&…

js获取url截取文件名或后缀名

示例图 var url "http://localhost:5613/static/挽风.jpg"var lastOf url.lastIndexOf(/) // /所在的最后位置var str url.substr(lastOf 1) //截取文件名称和后缀 输出&#xff1a;挽风.jpgvar strUrl url.substr(0, lastOf) //截取路径字符串 输出&…

【构建一套Spring Cloud项目的大概步骤】【Springcloud Alibaba微服务分布式架构学习资料】

目录 1、创建一个Maven项目2、搭建Spring Cloud服务3、搭建Spring Cloud Eureka4、搭建Spring Cloud Config5、搭建Spring Cloud Consumer6、搭建Spring Cloud Zuul7、使用Jenkins进行代码自动化部署另附录、Springcloud Alibaba微服务分布式架构 1、创建一个Maven项目 在IDEA…

四.pyqt5 登录界面和功能

一.使用qt creator 设置登录界面 主界面为之前设计的界面 from123.py 文章地址&#xff1a;三.listview或tableviw显示 二.导出ui文件为py文件 # from123.py 为导出 py文件 form.ui 为 qt creator创造的 ui 文件 pyuic5 -o x:\xxx\Fromlogin20230809.py form.ui三.python 显…

排查CPU飙高与系统反应慢的问题

今天我要和大家分享的是如何排查系统中的CPU飙高和系统反应慢的问题。在日常的系统运维中&#xff0c;我们可能会遇到这样的问题&#xff0c;因此&#xff0c;我将尽可能详细地介绍排查的步骤&#xff0c;并通过实际的例子来展示如何进行排查。希望大家能够从这篇文章中获得所需…

分享一下微信小程序里怎么创建会员卡功能

在当今的数字化时代&#xff0c;微信小程序已经成为一种广泛使用的应用模式&#xff0c;涵盖了各种行业。对于企业而言&#xff0c;拥有一个会员卡系统可以更好地管理客户&#xff0c;提高客户忠诚度&#xff0c;并促进消费。本文将探讨如何在微信小程序中创建会员卡功能&#…

计算机毕设 基于大数据的股票量化分析与股价预测系统

文章目录 0 前言1 课题背景2 实现效果3 设计原理QTChartsarma模型预测K-means聚类算法算法实现关键问题说明 4 部分核心代码5 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕…

YOLOv5算法改进(22)— 更换主干网络MobileNetv3 + 添加CA注意力机制

前言:Hello大家好,我是小哥谈。本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络MobileNetv3 + 添加CA注意力机制),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5算法的改进!🌈 前期回顾: YOLOv5算法改进(1)— 如何去改进YOLOv5算法

智能安全配电装置在临时展会场所中的应用

【摘要】简述了商场临时展会、展摊等场所中电气装置用电的特性&#xff0c;针对此类场所中隐含的电气安全隐患问题&#xff0c;结合智能安全配电装置的功能&#xff0c;从用电设备的接地、线路的安装与敷设、设备的维护和管理等方面介绍了其安全保障技术&#xff0c;以保证此临…

蓝鹏测控平台软件 智能制造生产线的大脑

测控软件平台&#xff0c;是由包括底层驱动程序、通讯协议等&#xff0c;集数据采集、自动反馈控制、信息分析以及多种工程应用于一体的一种电子信息处理平台。 蓝鹏测控软件平台目前支持各种文本标签 、数字标签&#xff1b;支持趋势图、波动图、缺陷图及统计图表。多端口实现…

马斯克的人工智能初创公司xAI推出首款AI助手Grok;吴恩达生成式AI新课

&#x1f989; AI新闻 &#x1f680; 马斯克的人工智能初创公司xAI推出首款AI助手Grok&#xff0c;并放入特斯拉的Premium Plus套餐中 摘要&#xff1a;本周&#xff0c;埃隆马斯克发布了多篇帖子&#xff0c;宣布其人工智能初创公司xAI将推出首款AI助手Grok&#xff0c;并将…

回顾上海2023 SNEC ES+ ,这些精彩瞬间值得定格!

11月3日&#xff0c;为期三天的2023 SNEC ES完美落幕。科士达以13重磅产品、4解决方案惊艳全场。光储场景应用全覆盖&#xff0c;让现场嘉宾沉浸式地感受到科士达在光伏、储能领域的领先技术和匠心品质。下面让我们一起打开展会长卷&#xff0c;再阅精彩。 ​“储”类拔萃&…

Fortigate SSL VPN路径遍历漏洞(CVE-2018-13379)

Fortigate SSL VPN路径遍历漏洞&#xff08;CVE-2018-13379&#xff09; 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: body"FortiToken clock drift detected" 漏洞复现1. 访问链接查看是否存在漏洞2. 查看用户名密码3. 登录后台 免责声明 仅用于技术交流,目的是…

高性能计算HPC存储解决方案的特点

用户利用高性能计算 (HPC) 来执行大规模的复杂计算任务&#xff0c;在短时间内解决复杂问题&#xff0c;遥遥领先于传统计算方法。Infortrend GS 存储解决方案专门针对密集型HPC工作负载进行优化&#xff0c;有效处理来自多个服务器的同时请求并保存分析的数据。我们的解决方案…

Xilinx Vivado IP许可申请

License许可申请地址 1、注册登录账号&#xff1b; 2、找到自己需要的IP核&#xff1b; 3、生成License 4、下载License

国际市场竞争中的品牌生存法则:克服挑战的方法

在全球化时代&#xff0c;国际市场扩张对企业来说是一个重要的战略选择。随着跨国贸易和数字化通信的飞速发展&#xff0c;公司可以更容易地拓展其业务到国际市场。然而&#xff0c;进军国际市场并不是一项容易的任务&#xff0c;伴随着各种复杂的挑战。本文Nox聚星将和大家探讨…