Vue3学习

全网最全的vue3入门教程『图文并茂』 Vue 3 是一个流行的开源JavaScript框架,用于构建用户界面和单页面应用。它带来了许多新特性和改进,包括更好的性能、更小的打包大小、更好的TypeScript支持、全新的组合式 API,以及一些新的内置组件。你可以创建自定义的hooks来复用代码。一个自定义hook就是一个函数,它可以使用其他的响应式数据和组合式API。import {setup() {你可以使用customRef函数来创建一个自定义的响应式引用。这允许你控制和观察当引用的值发生变化时的行为。 阅读详情
  1. vue是什么?

渐进式的javascript框架,用于构建用户界面的javascript框架。

  1. Vue的核心功能:声明式渲染(template)和响应性

  1. 使用vue的方式:

  1. 无需构建步骤,渐进式增强静态的HTML

  1. 在任何页面中作为Web Components嵌入

  1. 单页面应用SPA

  1. 全栈/服务端渲染(SSR)

  1. Jamstack/静态站点生成(SSG)

  1. 开发桌面端、移动端、WebGl,甚至是命令行终端中的界面

  1. Vue3项目的创建:

安装脚手架: npm install -g @vue/cli

创建项目:vue create appName

  1. vue组件风格分为选项式API和组合式API(选项式API是基于组合式API)

选项式API:

<script>
export default {
  // data() 返回的属性将会成为响应式的状态
  // 并且暴露在 `this` 上
  data() {
    return {
      count: 0
    }
  },

  // methods 是一些用来更改状态与触发更新的函数
  // 它们可以在模板中作为事件监听器绑定
  methods: {
    increment() {
      this.count++
    }
  },

  // 生命周期钩子会在组件生命周期的各个不同阶段被调用
  // 例如这个函数就会在组件挂载完成后被调用
  mounted() {
    console.log(`The initial count is ${this.count}.`)
  }
}
</script>

<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

组合式API

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

// 响应式状态
const count = ref(0)

// 用来修改状态、触发更新的函数
function increment() {
  count.value++
}

// 生命周期钩子
onMounted(() => {
  console.log(`The initial count is ${count.value}.`)
})
</script>

<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

应用场景:

  1. 当你不需要使用构建工具,或者打算主要在低复杂度的场景中使用vue,例如渐进增强的应用场景,推荐使用选项式API

  1. 当你打算用Vue构建完整的单页应用,推荐使用组合式API+单文件组件


import{reactive} from ‘vue’
export default{
    props:{
        item:string
    }
//setup函数会在beforeCreate之后,created之前执行,相当于预设配置
//setup函数的第一个星灿,接受props数据,通过props.item获取
    setup(props){
        const state = reactive({
            name:'abc'
        })
        return state
    }
}

注意:在setup函数中无法访问到this

reactive函数

reactive函数接受一个普通对象


const state = reactive({
    num:1
})

使用:


import{reactive} from ‘vue’
export default{
    props:{
        item:string
    }
//setup函数会在beforeCreate之后,created之前执行,相当于预设配置
//setup函数的第一个星灿,接受props数据,通过props.item获取
    setup(props){
        const state = reactive({
            name:'abc',
            id:4,
            arr:[],

        })
        return state
    }
}

<template>
    <div>
        {{name}}
    </div>
</tempalte>

ref

ref()函数用来给定的值创建一个响应式的数据对象,ref()函数调用的返回值是一个对象,这个对象上只包含一个value属性。


import {ref} from 'vue'
setup(){
//在setup方法中调用ref函数,创建响应式数据对象
    var c = ref(10);
    return {c}
}

<template>
    <div>
        {{c}}
    </div>
</tempalte>

ref和reactive结合


import {reactive,ref,onMounted} from 'vue'
export default {
    setup(){
        var state = reactive({
            a:ref(100)
        })
        onMounted(()=>{
            state.a+=10
        })
        return state
    }
    
}

ref和reactive的区别

他们两个用法相似,ref一般用于基本数据类型,reactive用于复杂数据类型,reacive不能处理基本数据类型,会没有响应式。

toRefs()将reactive创建出来的对象都转换为ref形式的响应式数据


export default{
    setup(){
        let state = reactive({
            id:10
        });
        function change(){
            state.id+=1;
            
        }
        return {
            ...state,
            change
        }
    }
}

使用解构返回对象后,会将对象的响应式丢失,不会再跟新数据到页面上

这种情况就可以使用toRefs();


return {
    ...toRefs(state),
    change
}

//多个方法定义
setup(){
    let state = reactive({
        id:10
    });
    function change(){
    }
    const methods = {
        fun1(){},
        fun2(){},

    }
    return {
        ...toRefs(state),
        ...methods,
        change
    }
}

computed计算属性


setup(){
    let state = reactive({
        id:10,
        n1:computed(()=>{state.id+1})
    })
    return state;
}

watch监听


setup(){
    let state = reactive({
        id:10,
        n1:computed(()=>{state.id+1})
    })
    let watch = watch(()=>state.id,(cur,old)=>{
        if(cur%2==0){
            console.log('偶数')
        }
    })
    onUnmounted(()=>{
        watch();//停止监听
    });
    return state;
}

生命周期新旧对比


beforeCreate----->setUp()
created---------->setUp()
beforeMount------>onBeforeMount();
mounted---------->onMounted();
beforeUpdate----->onBeforeUpdate();
updated---------->onUpdated();
beforeDestroy---->onUnmount();
destroyed-------->onUnmounted();
errorCatched----->onErrorCatched();

Suspense异步组件

<Suspense>
    <template #default>
        <list/>//加载list组件,如果组件数据未加载会先显示下面的内容
    </template>
    <template #fallback>
        <div>loading.......</div>
    </template>
</Suspense>

路由


import {useRouter,useroute} from 'vue'
获取路由id
const route = useRoute();//当前路由
const router = useRouter();//全局路由
const id  = route.params.id

vuex4的使用


import {createStore} from ‘vuex’
const state = {
    isShow:false
}
var getter = {
    show(state){
        return state.isShow;
    }
}
var actions = {
    SHOW({commit}){
        commit('SHOW')
    }
}
const mutations = {
    SHOW(state){
        state.isShow = true
    }
}
const store = createStore({
    state,
    getter,
    actions,
    mutations
})
export default store;

ref()获取dom


<input type="text" ref="refInput"/>
const refInput = ref();

封装axios


import axios from 'axios'

const service = axios.create({
  // baseURL: 'process.env.VUE_APP_BASE_API',
  withCredentials: true,
  timeout: 60 * 1000
})

service.interceptors.request.use(
  config => {
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

service.interceptors.response.use(
  response => {
    const res = response.data
    return res
  },
  error => {
    return Promise.reject(error)
  }
)

export default service

Vue 3 学习难点解析 然而,Vue 3 也存在一些学习难点,如新的 Composition API、响应式系统的变化、类型推断和类型支持、组件开发和组合、状态管理和数据共享以及高级特性和工具等。通过系统学习和实践、深入理解原理和机制以及持续学习和更新等方法,可以克服这些学习难点,掌握 Vue 3 的知识和技能。Vue.js 是一款流行的前端 JavaScript 框架,Vue 3 在 Vue 2 的基础上进行了重大的更新和改进,带来了更高效的性能、更强大的功能和更灵活的开发体验。新的 Composition API。 阅读详情

相关推荐

Vue 3学习指南

按照此路径学习,结合项目实践和社区参与,你将逐步掌握Vue 3的核心技能,并能在实际开发中高效构建现代Web应用。

GanKuRenSheng的博客 999

vue3的学习【超详细】

在Vue2中,数据响应式主要借助Object.defineProperty()来实现,存在的缺陷是无法操作数据的增加和删除,在Vue3中,数据响应式主要借助proxy和Reffect配合实现,可以做到实现数据的增删改查。指令系统是计算机硬件的语言系统,也叫机器语言,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力在vue中提供了一套为数据驱动视图更为方便的操作,这些操作被称为指令系统。

weixin_50166856的博客 1万+

vue3 学习总结

<div>原始数据:{ { list }}</div><div>计算后的数据:{ { setList }}

m0_67307574的博客 1102

VUE3学习(入门篇)

VUE3学习(入门篇) Vue3相较于Vue2.x改动: 性能提升 按照vue官方的说法,Vue3包含了以下性能方面的提升: 打包大小减少41% 内存占用减少54% 初次渲染快55%,更新渲染快133% 源码升级 使用Proxy代替Object.defineProperty方法实现响应式 重写虚拟DOM的实现和Tree-Shaking TypeScript支持优化 Vue3可以更好地支持TypeScript 新特性 Composition API(组合API) setup配置 ref与re

Joey_Tribiani的博客 1万+

VUE3学习路线

按照上述阶段进行学习,你将能够系统地掌握 Vue 3 开发的各个方面。根据自己的进度和兴趣调整学习内容,实践是最好的学习方法。此外,保持对新技术和最佳实践的关注,持续提升自己的开发能力。祝你学习愉快!

蜡笔小新星的博客 3364

ABAP代码检查(Code Review)

1、SLIN 扩展程序检查 也可通过(SE38工具栏->检查-扩展程序检查) 进入 2、ATC 检查 通过<SE38菜单栏-检查-ABAP测试主控室> 或事物代码SCI, 支持自定义检查变式 SCI可以配置检查变式满足特殊需求,配置对象集用于批量检查 3、通过ABAP测试主控室实现统一管理,定期检查作业和监控功能(事务代码ATC) 参考 SLIN...

u012232542的博客 6063

Vue3入门学习

Vue3入门学习

ingenuou_的博客 2984

±10V ADC 输入电路的高共模差分输入电压

这篇文章分析了±10V ADC输入电路的设计需求与挑战,重点讨论了高共模差分输入电压的处理方案。文章首先明确了设计目标,即安全转换±10V差分信号并保持信号完整性,同时克服高共模电压、阻抗匹配和噪声优化等难点。随后详细比较了仪表放大器和差分放大器的性能特点,并提出了器件选型理论。在信号链架构部分,文章通过公式推导阐述了增益设置、共模抑制设计和输入阻抗匹配等关键技术。此外,还建立了噪声源模型,提出了噪声优化措施。最后,文章总结了设计验证方法,并扩展了在工业保护和生物电信号采集等场景的应用。该设计强调根据具体应

泛红尘的博客 1959

VUE3—小白入门之路(图文详细版,一文全部搞定!)

本文详细介绍了Vue3的工程创建、项目结构、基本指令、脚本语法、组件通信、路由等内容。首先,对比了Vue CLI和create-vue两种脚手架工具的差异,推荐根据项目需求选择合适的工具。接着,讲解了Vue3的项目结构、基本指令(如v-model、v-show、v-for等)以及组合式API的使用,包括响应式语法(reactive、ref、computed、watch)和生命周期钩子。此外,还介绍了组件通信的多种方式(如defineProps、defineEmits、ref、provide/inject)以

m0_61990598的博客 4万+

基于Matlab的深度学习OFDM系统信号检测

在接收端,我们首先去除循环前缀,然后对接收到的信号进行FFT变换和QAM解调。在通信系统中,正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)是一种常用的调制技术,它可以将高速数据流分成若干个低速子载波进行传输,提高了信道利用率和抗干扰性能。接下来,我们使用训练好的神经网络对QAM调制后的数据进行检测,得到估计的FFT变换结果。深度学习方法可以通过大量的训练数据来学习信号的特征,并具有一定的适应能力,在某些情况下可能能够获得更好的检测性能。

2301_79325657的博客 296

机加工机器人系列编程:Fanuc M-710iC_(2).FanucM-710iC机器人的硬件配置

Fanuc M-710iC 机器人是一种广泛应用在汽车零部件制造行业中的工业机器人。它的本体结构设计紧凑、稳定,适用于多种加工任务。了解机器人的本体结构是进行编程和维护的基础。

zhubeibei168的博客 990

Vue3/VueJS技术学习笔记

Vue3/VueJS技术学习笔记 1、第一个Vue.js应用程序 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hello-vue</title> <!--导入Vue.js,开发环境版本,包含了有帮助的命令行警告--> <script src="https://cdn.jsdelivr.net/npm/

microvulome的博客 1393

【C++】开源:cpp-httplib HTTP协议库配置与使用

cpp-httplib HTTP协议库配置与使用

DevFrank的博客 5539

Vue3 非常好用的中文文档以及一份 Vue 3 新文档学习笔记

焕然一新的 Vue3 中文文档来了! 新文档地址:https://vuejs.org 中文版翻译:https://staging-cn.vuejs.org(官方已标注为新版) 旧版中文版:https://github.com/vuejs/docs/graphs/contributors (官方已标注为旧版) 学记笔记与脑图在原文连接中 原文链接:https://mp.weixin.qq.com/s/xajtqF0eaesrtZmifq4BuQ ...

qq_29454203的博客 1133

U盘插入电脑时发出声音但不显示——编程解决方案

以上是一些常见的编程解决方案,帮助您解决U盘插入电脑时发出声音但不显示的问题。请注意,这些解决方案可能因不同的情况而略有不同,因此请根据您的具体情况进行调整和尝试。当您将U盘插入电脑时,如果您听到了连接声音,但是U盘却没有在文件资源管理器或桌面上显示出来,这可能是由于一些常见问题导致的。U盘的文件系统格式可能与您的计算机不兼容,导致无法正确识别。如果输出显示U盘的文件系统格式与您的计算机不兼容,您可以尝试重新格式化U盘或使用其他兼容的文件系统格式。其中,X是U盘的磁盘编号,Y是您想要分配给U盘的盘符。

ByteEchoX的博客 2461

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

S7-1200 G2移植旧版本S7-1200程序的具体方法示例

Robot_PLC_HMI_Automation 1509

vuejs学习5.3 vue-router

vue-router动态路由路由懒加载vue-router打包文件解析路由懒加载的使用嵌套路由router-link传递参数配置动态路由——params使用querybutton传递参数使用query使用params 动态路由 在设置路由映射关系时:后面使用:添加拼接内容 { path:'/user/:userId', component:User } 在使用时:动态获取userId的内容,使用v-bind,然后进行字符串拼接 <router-link v-bind:

qq_39225271的博客 491

【异常】Nacos 2.x 核心报错:Server check fail (gRPC 端口连不通) 深度排查

如果 Nacos 运行在 K8s 中,需确保对应的Servicemetadata:spec:ports:port: 8848port: 9848 # 必须暴露此端口selector:app: nacos在 Nacos 2.x 时代,“端口成套出现”是基础设施配置的基本要求。遇到连接失败时,首要检查的不是业务配置,而是网络链路上主端口 + 1000的 TCP 通讯是否被放行。更多关于 AI + 教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 324

重生之我在学Vue-- Vue3 学习路径总览

一个完整的项目应该包含前端和后端,一名合格的程序媛也不应该掌握前端或者后端,更应该两者兼修,方能行稳致远。以下为20天Vue3学习计划,从基础到进阶比较全面的学习计划:Vue3 官方中文文档传送点:简介 | Vue.jsVue3 的中文官方文档学习笔记很全还有练习场,推荐去官网学习Go后端学习之路_野生的程序媛的博客-优快云博客学习目标:复习前 9 天的内容,总结学习成果。学习内容巩固基础知识,解决项目中的问题。总结 Vue 3 开发的核心流程。任务完善项目的功能与样式。

Xiao651的博客 2882

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

【Vuejs】908- Vue 3.0 进阶之深入学习响应式 Refs API

本文是 Vue 3.0 进阶系列 的第九篇文章,在组合式 API setup 配置项中经常会见到 Refs API 的身影,比如 ref、toRef 或 toRefs 等。那么这些常用 A...

pingan8787 976

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VUE3学习

安装 Vue.js 主要有两种方法,取决于你是想使用 Vue.js 的 CDN 还是想通过 npm 进行项目开发。

qq_40595376的博客 1151

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

对于Vue3的学习!

记录本人对于Vue3的学习!不定时补充!学习地址 :Vue.js。

晚风乱了温柔的博客 1619

vuejs学习3.4 webpack基本使用——配置Vue

配置Vue下载使用vue真实代码el和template区别代码抽取抽取一抽取二抽取三安装vue-loader vue-template-compiler配置 下载 下载特定版本 npm install vue@2.6.11 --save 使用vue //后面必须是小写的vue import Vue from "vue" const app = new Vue({ el:"#app", data:{ message:"我是message", }, }) <div id="ap

qq_39225271的博客 810

Vue3 学习计划安排

【代码】Vue3 学习计划安排。

爱尚丽明的博客 1351

Vue3 学习笔记

hook。

liqinjv的博客 1373

vue3学习文档

学习vue3地址:https://24kcs.github.io/vue3_study/

weixin_53035812的博客 1423
上一篇: webpack学习
下一篇: react 整合
小蒋小蒋快乐成长
博客等级 码龄9年 2109粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值