位置: 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官方文档)

  • 微信群里踢人怎么踢人(微信群里踢人怎么踢不出去)

    微信群里踢人怎么踢人(微信群里踢人怎么踢不出去)

  • 华为p30pro在锁屏时的通知为什么不能展开(华为p30pro锁屏壁纸怎么设置)

    华为p30pro在锁屏时的通知为什么不能展开(华为p30pro锁屏壁纸怎么设置)

  • 秒速寻定位对方要提示权限吗(使用秒定位能找到人吗)

    秒速寻定位对方要提示权限吗(使用秒定位能找到人吗)

  • 手机受冻后快速没电(手机受冻后快速没电怎么办)

    手机受冻后快速没电(手机受冻后快速没电怎么办)

  • 拼多多删除好友后对方列表里还有吗(拼多多删除好友怎么删)

    拼多多删除好友后对方列表里还有吗(拼多多删除好友怎么删)

  • ss14二极管的作用(ss14二极管代换5819)

    ss14二极管的作用(ss14二极管代换5819)

  • 陌陌发动态别人看不见怎么办(陌陌发动态别人给我点赞宊然没有了是怎么回事)

    陌陌发动态别人看不见怎么办(陌陌发动态别人给我点赞宊然没有了是怎么回事)

  • 电脑因为防火墙无法连接网络?(电脑因为防火墙自动关闭)

    电脑因为防火墙无法连接网络?(电脑因为防火墙自动关闭)

  • 苹果散热不好怎么办(iphone散热不好影响电池寿命吗)

    苹果散热不好怎么办(iphone散热不好影响电池寿命吗)

  • 视频解码器是什么东西(视频解码器是什么原理)

    视频解码器是什么东西(视频解码器是什么原理)

  • 支付宝被永久限制收款(支付宝被永久限制了收款怎么解决)

    支付宝被永久限制收款(支付宝被永久限制了收款怎么解决)

  • 用淘宝子账号删除宝贝,主账号会提示吗(淘宝子账号删除聊天记录,淘宝主账号还能看见么)

    用淘宝子账号删除宝贝,主账号会提示吗(淘宝子账号删除聊天记录,淘宝主账号还能看见么)

  • 为什么qq扩列匹配失败了(qq扩列为什么会不见)

    为什么qq扩列匹配失败了(qq扩列为什么会不见)

  • 微信拒绝添加好友怎么设置(微信拒绝添加好友是什么意思)

    微信拒绝添加好友怎么设置(微信拒绝添加好友是什么意思)

  • 计算机中的媒体是什么(计算机中的媒体分为哪几类)

    计算机中的媒体是什么(计算机中的媒体分为哪几类)

  • p30微信视频怎么美颜(p30微信视频声音小怎么解决)

    p30微信视频怎么美颜(p30微信视频声音小怎么解决)

  • 趣步糖果可以赠送吗(趣步里面的糖果怎么卖钱的)

    趣步糖果可以赠送吗(趣步里面的糖果怎么卖钱的)

  • 黑鲨烧鸡模式如何开启(黑鲨2pro烧鸡模式怎么开)

    黑鲨烧鸡模式如何开启(黑鲨2pro烧鸡模式怎么开)

  • 网页版b站怎么缓存(网页版b站怎么截图)

    网页版b站怎么缓存(网页版b站怎么截图)

  • 闲鱼怎么看拍卖宝贝(闲鱼怎么看拍卖记录)

    闲鱼怎么看拍卖宝贝(闲鱼怎么看拍卖记录)

  • 京豆如何兑换(京豆如何兑换优惠券)

    京豆如何兑换(京豆如何兑换优惠券)

  • 织梦dedemcs升级最新版本技巧和升级后出现的问题解答(织梦系统)

    织梦dedemcs升级最新版本技巧和升级后出现的问题解答(织梦系统)

  • 工业企业取得土地使用权专用发票可以抵扣吗?
  • 防伪税控风险纳税人财务负责人和法人同一人
  • 固定资产安装费用怎么处理
  • 耕地占用税的税目
  • 交通费中的高速费怎么算
  • 扫码开票开错了怎么改
  • 企业缴纳季度所得税
  • 发票红票和退票区别在哪
  • 哪些收入应该纳入到个人所得税
  • 人力资源的差额征收怎么报企业所得税
  • 融资租赁和经营性租赁区别
  • 房地产企业对外投资案例
  • 抵押贷款买房子合适还是商业贷款合适
  • 收到个税返还计入成本吗
  • 免费拿样品
  • 一张发票多个单位报销,怎么分辨
  • 代理进出口公司营销方式
  • 个税手续费返还会计分录
  • 商业保险税前扣除限额
  • 金税盘和税控盘哪个好
  • 没有签订劳动合同员工离职怎么处理
  • 固定资产出售怎么做账
  • 委托出口货物怎么办理退免税?
  • 工会经费80%
  • 销项税和进项税怎么区分
  • windows11下载后怎么安装
  • 经费支出渠道
  • 小规模纳税人买车可以抵税吗
  • windows无法验证此设备数字签名
  • PHP:pg_last_error()的用法_PostgreSQL函数
  • 重装win7系统鼠标键盘没反应
  • 交易性金融资产包括哪些项目
  • rsa前端解密
  • PHP:mcrypt_module_is_block_mode()的用法_Mcrypt函数
  • 非货币资金包括哪些科目
  • 资产现金流量收益率计算方法
  • 贷款减值准备什么科目
  • 在西伯利亚森林中是真实故事吗
  • 享受所得税优惠情况说明
  • 贷方跟借方哪个是收入哪个是支出
  • 银行历年账单怎么查
  • 微信小程序实现支付功能
  • 编写jsp程序,实现简易计算机
  • 物料最低库存
  • 利润分配的5个基本原则
  • 分公司非独立核算怎么报税
  • sql2008还原到2012
  • 公司人身意外保险多少钱
  • 完整的会计核算流程
  • 跨期费用账务处理
  • 工会经费的计提比例
  • 宾馆里面的牙膏收费吗
  • 餐饮发票食品发票
  • 公司法人借款给企业属于关联交易吗?
  • 单位内部部门之间人员调整
  • 手工账明细账怎么登记
  • 账务调整的原则
  • 预计负债计入哪里
  • 固定资产标准提高是政策变更吗
  • 预收账款可以挂在应收账款
  • 编程经验点滴怎么写
  • mysql的日志
  • win7系统步骤
  • ie10工具栏在哪
  • windows10iot安装
  • centos7文件路径
  • linux内核的作用
  • win8操作中心怎么关闭
  • win7系统打不开设备与打印机
  • opengl超级宝典pdf
  • 序列化为json
  • for循环取数据
  • js canvas绘制图片
  • 每天一篇日记100字
  • Python实现HTTP协议下的文件下载方法总结
  • 出口汇率以什么为准
  • 地税局属于省直单位吗
  • 计财科科长是什么级别
  • 为什么企业减少注册资金的原因
  • 年报基础数据怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设