位置: IT常识 - 正文

vue3指导教程(附带获取屏幕可视区域宽高)(vue3.0教程)

编辑:rootadmin
vue3指导教程(附带获取屏幕可视区域宽高) 一、从vue2到vue3

推荐整理分享vue3指导教程(附带获取屏幕可视区域宽高)(vue3.0教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3技巧,vue3技巧,vue3jsx,vue3官方教程,vue3怎么用,vue3 教程,vue3 教程,vue3 教程,内容如对您有帮助,希望把文章链接给更多的朋友!

        vue3.0 向下兼容 vue2.x 版本,优化了主要核心双向绑定原理和体积大小,并且更加友好的兼容 ts 语法。vue3是基于ES6新增的proxy代理实现的。

1.1 vue3的特点新增了组合式api更接近原生js更加解耦(收到react启发)按需加载1.2 与vue2的区别

        相同点:生命周期基本一致、与vue2的模板语法基本一致、与vue2的选项基本一致data methods computed watch等。

        不同点:启动方式不同、全局方法挂载不一样、vue3可以拥有多个根节点、生命周期卸载不同、vue3新增部分 setup()在组件挂载前运行。

二、vue3的安装使用

        win+R,输入cmd打开命令窗口,按照以下步骤进行安装。

2.1 安装脚手架npm i @vue/cli -g 2.2 创建项目vue create mv3 //mv3为项目名称2.3 手动安装

2.4 进入并运行项目服务器cd /mv3npm run serve三、vue3生命周期

        Vue3中继续使用Vue2中的生命周期钩子,但有有2个钩子发生了改变 - beforeDestroy改名为beforeUnmount(卸载前) - destroyed改名为unmounted(卸载) 与vue2不同的是,vue3中是有了el模板之后才会去初始化,而vue2中是先created之后再去找模板。

Vue3生命周期示意图如下:

 

 

四、vue3核心4.1 setup组件vue3指导教程(附带获取屏幕可视区域宽高)(vue3.0教程)

        在vue2中,生命周期暴露在vue实例的选项上,使用时直接调用;vue3中使用生命周期钩子,需要先导入项目,才能够使用。

import {onMounted} from 'vue'4.2 ref创建响应式数据        

         在 vue 3中,可以通过一个新的 ref 函数使任何响应式变量在任何地方起作用 ;ref() 函数可以根据给定的值来创建一个响应式的数据对象,返回值是一个对象,且只包含一个 .value 属性。在 setup() 函数内,由 ref() 创建的响应式数据返回的是对象,所以需要用 .value 来访问。

        使用ref可以创建一个包含响应式数据的引用对象(reference对象,简称ref对象),可以是基本类型、也可以是对象。

import { ref } from 'vue' //使用前先导入const counter = ref(0)console.log(counter) // { value: 0 }console.log(counter.value) // 0counter.value++console.log(counter.value) // 14.3 reactive创建响应式引用类型方法

        定义一个对象类型的响应式数据,内部基于ES6的Proxy实现,通过代理对象操作源对象内部数据进行操作;返回一个对象的响应式代理。

import {reactive} from 'vue'// 定义一个引用类型的响应式数据list 默认是const list = reactive(["vue","react","angular"])4.4 computed & methods

计算属性关键词: computed。

var twiceNum = computed(()=>num.value*2)

computed vs methods         可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行。

methods: {  reversedMessage2: function () {    return this.message.split('').reverse().join('')  }}4.5 watch监听

         watch(参数1,参数2) 默认是懒侦听的,即仅在侦听源发生变化时才执行回调函数。参数1是侦听源,参数2是回调函数。 

案例:创建一个stepper组件(src/components/StepperCom.vue),在HomeView中引入(src/views/HomeView.vue)

src/components/StepperCom.vue

<template> <span> <button @click="count--">-</button> <input type="text" style="width:90px;" v-model="count"> <button @click="count++">+</button> </span></template><script setup>//defineProps定义propsimport {defineProps,ref,watch,defineEmits,watchEffect,defineExpose} from 'vue'//定义props传入参数const props=defineProps({ //类型为数字或者字符串,默认值为1 value:{type:[Number,String],default:1}})//定义一个响应式对象初始值为props.valueconst count=ref(props.value);//定义事件发送器var emits=defineEmits(["input"]);//监听count的变化watch(count,()=>{ //发送一个inout事件 事件值为count的value emits("input",count.value);})//只要watchEffect中出现了数据,数据发生变化都会被执行watchEffect(()=>{ count.value=props.value;})//defineExpose规定了组件哪些值可以被引用获取defineExpose({count})</script>

 src/views/HomeView.vue

<template> <div> <h1>setup</h1> <button @click="num++">{{num}}</button> <stepper-com :value="10" @input="num=$event"></stepper-com> </div></template><script setup>//使用setup可以简写(不用导出,组件不用注册)import StepperCom from '@/components/StepperCom.vue'import {ref} from 'vue' const num=ref(5)</script>五、案例(获取可视区域宽高数据)

src/utils/utils.js

import {ref,onMounted,onBeforeUnmount} from 'vue'export function useWinSize(){ const size=ref({width:1920,height:1080}); //窗口变化时更新size function onResize(){ size.value={ //用窗口的最新宽高更新width和heigth width:window.innerWidth, height:window.innerHeight } } //组件挂载完毕更新size onMounted(()=>{ window.addEventListener("resize",onResize); }) //组件要卸载的时候移除事件监听 onBeforeUnmount(() => { window.removeEventListener("resize",onResize); }) return size;}

src/views/HomeView.vue

<template> <div> <h1>可视区域宽度与高度</h1> <p>{{size}}</p> </div></template><script setup>//导入useWinSize方法import {useWinSize} from '@/utils/utils.js'//方法执行,返回一个对象sizeconst size=useWinSize();</script>
本文链接地址:https://www.jiuchutong.com/zhishi/297613.html 转载请保留说明!

上一篇:【Python】Streamlit库学习:一款好用的Web框架(python stream模块)

下一篇:【Vant Weapp】van-tab 标签页(vant weapp官方文档)

  • 荣耀play6T处理器(荣耀play5t参数配置)

    荣耀play6T处理器(荣耀play5t参数配置)

  • 红米k40支持OTG功能吗

    红米k40支持OTG功能吗

  • qq怎么换gif头像(qq怎么改gif头像)

    qq怎么换gif头像(qq怎么改gif头像)

  • 华为大容量电池手机有哪几款(华为大容量电池手机)

    华为大容量电池手机有哪几款(华为大容量电池手机)

  • iphonex自动重启频繁(iphonex自动重启什么原因)

    iphonex自动重启频繁(iphonex自动重启什么原因)

  • qq匹配失败聊天怎么办(qq匹配聊天无法匹配)

    qq匹配失败聊天怎么办(qq匹配聊天无法匹配)

  • 微信群主可以撤回超过两分钟的消息吗(微信群主可以撤回多久的消息)

    微信群主可以撤回超过两分钟的消息吗(微信群主可以撤回多久的消息)

  • 锁定布局是什么意思(锁定布局图框的快捷键)

    锁定布局是什么意思(锁定布局图框的快捷键)

  • qq点赞前面的小图标怎么设置(qq点赞前面的小图标不见了)

    qq点赞前面的小图标怎么设置(qq点赞前面的小图标不见了)

  • 美图秀秀有历史记录吗(美图秀秀有历史版本吗)

    美图秀秀有历史记录吗(美图秀秀有历史版本吗)

  • 微信只能9人视频吗(微信怎么做到超过9人视频)

    微信只能9人视频吗(微信怎么做到超过9人视频)

  • 苹果x为什么会脱胶(苹果x为什么会突然黑屏)

    苹果x为什么会脱胶(苹果x为什么会突然黑屏)

  • 苹果手机密码输错几次会被锁(苹果手机密码输对了为什么解不开)

    苹果手机密码输错几次会被锁(苹果手机密码输对了为什么解不开)

  • 手机截屏图片保存在哪里(手机截屏图片保存设置)

    手机截屏图片保存在哪里(手机截屏图片保存设置)

  • oppor11充电器参数(oppor11充电头参数)

    oppor11充电器参数(oppor11充电头参数)

  • 华为dub-tl00是什么型号(华为dubtl00型号)

    华为dub-tl00是什么型号(华为dubtl00型号)

  • 怎么添加浅绿色底纹(怎么添加浅绿色底纹背景)

    怎么添加浅绿色底纹(怎么添加浅绿色底纹背景)

  • 手机里安卓文件可以删除吗(手机里安卓文件哪些是可以删除的)

    手机里安卓文件可以删除吗(手机里安卓文件哪些是可以删除的)

  • 手机录好的视频怎么加速(手机录好的视频怎么降低分辨率)

    手机录好的视频怎么加速(手机录好的视频怎么降低分辨率)

  • 怎么在演示文稿中创建一个演示方案(怎么在演示文稿上打字)

    怎么在演示文稿中创建一个演示方案(怎么在演示文稿上打字)

  • iphone11是玻璃后盖吗(iphone11后玻璃)

    iphone11是玻璃后盖吗(iphone11后玻璃)

  • 话费充多了怎么退回来(话费充多了怎么退回)

    话费充多了怎么退回来(话费充多了怎么退回)

  • bios setup什么意思(bios setup怎么办)

    bios setup什么意思(bios setup怎么办)

  • 快手第一个作品怎么火(快手第一个作品两千播放量正常吗)

    快手第一个作品怎么火(快手第一个作品两千播放量正常吗)

  • java方法的返回值介绍(java方法的返回值类型有哪些)

    java方法的返回值介绍(java方法的返回值类型有哪些)

  • 5 分钟速通 SVG

    5 分钟速通 SVG

  • 申报社保不报个人账户
  • 疫情期间公司买水
  • 预付开发票加油后还能开吗
  • 管理不善进项税额转出会计分录
  • 同产品不同单价能相加开票吗
  • 支付宝过路费开票小程序
  • 计提坏账又收回
  • 作家以及作品
  • 如何设置处理器个数如何设置显示器超频
  • 亏损可以不用缴增值税吗
  • 购买的固定资产什么时候折旧
  • 个人所得税已申报税额合计是什么意思
  • 用现金购买的股票
  • 行政事业单位餐标
  • 退回多扣社保分录
  • 计算客户的应收账款成本
  • 小微企业季度超过30万怎么报增值税
  • 职工因公出差伙食补助标准
  • 存货盘亏计入什么科目批准后
  • 公司结算工资
  • 企业的不征税收入用于支出所形成的资产
  • 收到政府补助用于购买环保设备
  • 发生的业务招待费属于什么科目
  • 资询服务收入算服务还是劳务
  • 购进货物赠送客户增值税处理
  • 建筑企业预缴企业所得税会计分录
  • 即征即退的增值税计入其他收益吗
  • 清算期待摊费用怎么计算
  • mac dns 设置
  • 赊销商品应收款
  • 生产车间机器设备日常维修
  • 有营业执照是否可以领失业金
  • 微星主板bios更新黑屏
  • php sql 教程
  • 工业企业采购部门职责
  • 什么是冲帐?怎么个冲法?
  • postman汉化包
  • 羊了不眄翻译
  • php curl file_get_contents
  • php返回数据给ajax
  • python设置配置文件
  • 原材料用于在建工程增值税如何处理
  • echarts 官网
  • 面试我应该问些什么问题
  • 红字发票信息表盖什么章
  • 个人出租租房交什么税
  • 生产部门使用的各种机器设备属于什么会计科目
  • 垃圾处理费计入办公费用吗
  • 上年所得税费用借方有余额,怎么调整
  • php7安装mysqli扩展
  • 股权转让需要开票吗怎么开
  • 固定资产哪几类
  • 普票和专票的
  • 出售子公司股权给其他公司
  • 本年利润会计分录怎么写
  • 销售返利是否需要交税
  • 支付的劳务派遣服务费计入什么科目
  • 发票的抵扣期限是多少天
  • 营业外支出可以抵扣进项税吗
  • 分公司账务处理需要注意哪些
  • mysql 5.7.24安装
  • xp系统下载SCSI硬盘的安装、启动、设置教程
  • win10专业版怎么安装
  • cortana可以用于搜索本机文件吗
  • pcalc是什么软件
  • 放大镜windows快捷键
  • windows 10 正式版
  • Extjs中RowExpander控件的默认展开问题示例探讨
  • nodejs可以直接操作数据库
  • androidstudio更改工程名字
  • bootstrap快速入门
  • linux中命令行
  • jquery节点操作
  • jquery通过属性值获取元素
  • python对文件操作采用的统一
  • 城市配套费需要交税吗
  • 小规模纳税人进口环节的增值税税率
  • 广西空置房物业费减免政策吗
  • 济南保安证查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设