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

  • 腾讯视频超前点播可以在电视上看吗(腾讯视频超前点播怎么付费)

    腾讯视频超前点播可以在电视上看吗(腾讯视频超前点播怎么付费)

  • 注销qq号好友能看到吗(注销qq号好友还在吗)

    注销qq号好友能看到吗(注销qq号好友还在吗)

  • 美团众包怎么找站长(美团众包怎么找在线客服)

    美团众包怎么找站长(美团众包怎么找在线客服)

  • 腾讯会议开启视频黑屏(腾讯会议开启视频镜像模式别人看到的也是镜像吗)

    腾讯会议开启视频黑屏(腾讯会议开启视频镜像模式别人看到的也是镜像吗)

  • 微信怎么把聊天记录发给别人所有的(微信怎么把聊天记录导入新手机)

    微信怎么把聊天记录发给别人所有的(微信怎么把聊天记录导入新手机)

  • 微信账号评估什么意思(微信号价钱评估)

    微信账号评估什么意思(微信号价钱评估)

  • 小程序服务的基础(小程序服务内容)

    小程序服务的基础(小程序服务内容)

  • 在excel中,若在数值单元格中出现一连串的(在excel中若在数值单元格中出现)

    在excel中,若在数值单元格中出现一连串的(在excel中若在数值单元格中出现)

  • 快手作品换风格影响热门吗(快手作品换风格后多久能恢复)

    快手作品换风格影响热门吗(快手作品换风格后多久能恢复)

  • 转转收到假货可以申请退款吗(在转转上买到假货但是我确认收货了怎么办)

    转转收到假货可以申请退款吗(在转转上买到假货但是我确认收货了怎么办)

  • 微信支付人脸识别无法通过怎么办(微信支付人脸识别解除限制)

    微信支付人脸识别无法通过怎么办(微信支付人脸识别解除限制)

  • 手机adb重启什么意思(安卓手机开启adb重启什么意思)

    手机adb重启什么意思(安卓手机开启adb重启什么意思)

  • 快手账号异常收不到语音验证码(快手账号异常收不到信息)

    快手账号异常收不到语音验证码(快手账号异常收不到信息)

  • 淘气值怎么看(88会员淘气值怎么看)

    淘气值怎么看(88会员淘气值怎么看)

  • switch能连接ipad玩吗(switch能连接电脑屏幕)

    switch能连接ipad玩吗(switch能连接电脑屏幕)

  • 什么决定音频的质量(决定音频质量的因素)

    什么决定音频的质量(决定音频质量的因素)

  • iphone11promax屏幕材质(苹果11pro max的屏幕尺寸)

    iphone11promax屏幕材质(苹果11pro max的屏幕尺寸)

  • 手机qq没有声音是怎么回事(手机qq怎么没有声音)

    手机qq没有声音是怎么回事(手机qq怎么没有声音)

  • 苹果11怎么调闪光灯(苹果11怎么调闪光灯亮度)

    苹果11怎么调闪光灯(苹果11怎么调闪光灯亮度)

  • 拼多多连续包月怎么关(拼多多连续包月的月卡怎么取消)

    拼多多连续包月怎么关(拼多多连续包月的月卡怎么取消)

  • 苹果11怎么重启(苹果11怎么重启关机)

    苹果11怎么重启(苹果11怎么重启关机)

  • 快手极速版视频怎么保存到手机(快手极速版视频怎么下载)

    快手极速版视频怎么保存到手机(快手极速版视频怎么下载)

  • 为什么我的淘宝是家乡版的(为什么我的淘宝没有分期付款)

    为什么我的淘宝是家乡版的(为什么我的淘宝没有分期付款)

  • 一键转发的用处是什么(一键转发违法吗)

    一键转发的用处是什么(一键转发违法吗)

  • 微信更新不了怎么办(微信更新不了怎么办?)

    微信更新不了怎么办(微信更新不了怎么办?)

  • 华为地图服务干什么的(华为地图服务干什么用的)

    华为地图服务干什么的(华为地图服务干什么用的)

  • 华为和vivo怎么互传(华为和vivo怎么共享屏幕)

    华为和vivo怎么互传(华为和vivo怎么共享屏幕)

  • 烟叶税怎样计算
  • 锦州税务师考试在哪个学校
  • 租赁房屋怎么写合同
  • 非盈利组织企业所得税主表如何填列
  • 冲红的发票税款计提分录要冲红吗
  • 业务提成模版
  • 大票可以直接更名吗
  • 搭赠的商品怎么开票
  • 企业资产重组是不定期清查吗
  • 增值税怎样报税
  • 预付费卡税务处理
  • 加油站的成品油许可证变更过后有什么风险
  • 客户预付货款会计分录
  • 所得税退税未办理可以注销吗?
  • 钢结构制作安装方案
  • 关于金融行业的经典句子
  • 企业上市过程中遇到的困难
  • 员工服装属于什么费用类型
  • 同一控制下企业合并入账价值
  • 新注册公司季度资产为零
  • 向境外企业付外汇
  • 购入苗木的会计分录
  • 企业所得税怎么征收
  • 政府委托代建的房地产公司是否可以开立农民工工资
  • 收回股东投资
  • 公司室内装修
  • 更换营业执照要多久才能拿到
  • 成本法 合并
  • Win11怎么隐藏底部
  • mac菜单键怎么设置出来的
  • 个体公司转账给私人
  • 无形资产初始计量的表述
  • 投资企业撤回或减少投资企业所得税
  • 违约金赔偿款怎么开票
  • 修改gradle版本
  • 前端的基本知识
  • Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
  • Linux | 将SpringBoot+Vue项目部署到服务器上
  • node最新版本
  • react usereducer
  • 存货跌价准备的账务处理
  • 银行承兑汇票到期怎么兑现
  • 删除python包
  • 脚手架租赁费用超过购买价格
  • 融资购买固定资产账务处理
  • 社会团体要求
  • 外出经营税收缴纳
  • 公司福利可以发现金吗
  • 免税收入和不征税收入有何区别
  • 小规模纳税人免税怎么做账
  • 高新技术企业研发费用归集
  • 外购设备的会计分录
  • 去年的暂估入库今年想把它给冲出来怎么做分录
  • 其他业务收入在利润表中怎么填写
  • 应付暂估余额很大怎么办
  • 应付款多付了怎么入账
  • 营业外收入是收入类还是费用类
  • 旅游饮食服务企业会计核算的特点包括
  • sqlserver锁机制
  • MySQL中truncate误操作后的数据恢复案例
  • 实例讲解液化滤镜瘦身
  • sql server自动生成id
  • sql语句版本
  • sql server怎么使用sql语句
  • win8系统运行窗口怎么打开
  • Win7 64位纯净版无法安装第三方主题的可行破解方法
  • linux中find命令用法
  • shell脚本实现输出字母个数大于5的单词
  • 关于javascript函数
  • prototype用法
  • bat脚本如何运行
  • 脚本控制三行三列怎么写
  • android studio快捷键补全
  • document.write与writeln的输出内容区别说明
  • javascript语言入门教程
  • 辽宁省社保系统操作
  • 江苏省电子税务局电话
  • 文山市税务
  • 非道路机械环保标志图片
  • 进口小麦关税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设