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

  • 小米10s前置摄像头的像素是多少(小米10s前置摄像头参数)

    小米10s前置摄像头的像素是多少(小米10s前置摄像头参数)

  • 怎么撤销QQ注销(qq注销过程中怎么取消)

    怎么撤销QQ注销(qq注销过程中怎么取消)

  • 微信横屏模式是怎么打开(微信横屏模式是什么意思)

    微信横屏模式是怎么打开(微信横屏模式是什么意思)

  • 华为双系统能不能收到另一个系统的电话(华为双系统能不能微信分身)

    华为双系统能不能收到另一个系统的电话(华为双系统能不能微信分身)

  • 电话没人接会是什么情况(电话没人接会是拉黑吗)

    电话没人接会是什么情况(电话没人接会是拉黑吗)

  • 苹果手机用电信卡为什么无服务(苹果手机用电信和移动哪个信号好)

    苹果手机用电信卡为什么无服务(苹果手机用电信和移动哪个信号好)

  • 华为p40pro微信视频怎么开美颜(华为p40Pro微信视频美颜怎么关)

    华为p40pro微信视频怎么开美颜(华为p40Pro微信视频美颜怎么关)

  • 华为mate306+128和8+128区别(华为mate30 6+128和8+128的区别)

    华为mate306+128和8+128区别(华为mate30 6+128和8+128的区别)

  • ppt能放视频吗

    ppt能放视频吗

  • 苹果蓝牙耳机一共出了几代(苹果蓝牙耳机一个能连上一个连不上)

    苹果蓝牙耳机一共出了几代(苹果蓝牙耳机一个能连上一个连不上)

  • 微信怎么发几十张照片(微信怎么发几十张照片给某个人)

    微信怎么发几十张照片(微信怎么发几十张照片给某个人)

  • 红米k30与红米note8pro的区别(红米k30与红米note9参数对比)

    红米k30与红米note8pro的区别(红米k30与红米note9参数对比)

  • 小米平板闪烁解决办法(小米平板闪烁解不开锁)

    小米平板闪烁解决办法(小米平板闪烁解不开锁)

  • 华为nova5与nova6的区别(华为nova5与nova5pro的区别)

    华为nova5与nova6的区别(华为nova5与nova5pro的区别)

  • 恢复工厂设置后会怎样(恢复工厂设置后,方向盘音源没有了)

    恢复工厂设置后会怎样(恢复工厂设置后,方向盘音源没有了)

  • word字体竖着怎么打(word字体竖着怎么设置)

    word字体竖着怎么打(word字体竖着怎么设置)

  • 手机中swf怎么打开(手机怎么用swf文件)

    手机中swf怎么打开(手机怎么用swf文件)

  • 2016089是小米几(2016001是小米几的)

    2016089是小米几(2016001是小米几的)

  • 小米8nfc在哪打开(小米8nfc在哪里读取)

    小米8nfc在哪打开(小米8nfc在哪里读取)

  • 苹果手机丢了怎么锁死(苹果手机丢了怎么锁定不让别人用)

    苹果手机丢了怎么锁死(苹果手机丢了怎么锁定不让别人用)

  • 64g手机2年后够用吗

    64g手机2年后够用吗

  • nio bio aio的区别(简述 bio, nio, aio 的区别)

    nio bio aio的区别(简述 bio, nio, aio 的区别)

  • 新标记已收集怎么关(新标记已收集 空标记怎么取消)

    新标记已收集怎么关(新标记已收集 空标记怎么取消)

  • 音量平衡要不要打开

    音量平衡要不要打开

  • 最强大的人工智能chatGPT不会还有人没用过吧,再不用就out了(最强大的人工智能武器)

    最强大的人工智能chatGPT不会还有人没用过吧,再不用就out了(最强大的人工智能武器)

  • 税收分类编码怎么导出来
  • 计提工会经费的基数是什么
  • 有限合伙企业要交增值税吗
  • 新公司开账户需要多少钱
  • 咨询公司所得税税负率是多少合适
  • 滴滴出行怎么弄电子发票
  • 社保缴费回单怎么查
  • 高新企业收到政府补贴会计分录
  • 车间领用材料应填制什么凭证
  • 异地预交所得税跨年还能用吗
  • 提取备用金现金流量
  • 房屋租赁协议填写版本
  • 营改增后还要交企业所得税吗
  • 进项结构明细表怎么做
  • 增值税17%和13%有什么区别
  • 收购粮食怎么做账
  • "税务 政策"
  • 文化事业建设费征收对象
  • 往来科目明细表
  • 销售方开具的红字信息表
  • 推迟确认收入的方法
  • 集团公司收取管理费是否可以税前列支
  • 2019年基金市场
  • 应收出口退税属于哪个会计科目
  • win10自带的照片查看器
  • 成本和费用有什么区别与联系
  • 电费预提费用
  • amdr5 1400
  • php解析xml文件
  • 预收和应收怎么转换
  • win11有什么升级
  • 电脑安全系统无法启动怎么办
  • wmpdmc.exe是什么意思
  • win10蓝牙怎么开ldac
  • 在php中,字符串有哪些表示形式
  • 二年级祖先的摇篮教学视频
  • pc direct
  • explorer.exe进程文件
  • PHP isset()与empty()的使用区别详解
  • 地下开采对城区的影响
  • 微信小程序四人游戏
  • php多级分类
  • 社保包括哪些保险及比例
  • ajax 返回
  • SpringBoot+Vue实现简单用户管理平台第一篇(后端接口设计)
  • 【超直白讲解opencv RGB与BGR】RGB模式与BGR模式有什么不同,如何相互转换?
  • 个人转让上市公司原始股
  • 蔬菜免税分录
  • 人防车库成本能抵扣吗
  • 法律服务费属于什么服务
  • access中文版
  • 职工教育经费的扣除限额
  • 个人劳务报酬所得税税率表
  • 餐饮行业加盟模式
  • 工业企业出售产品应交的消费税额,应计入营业成本
  • 车辆购置税具有价外征收转嫁税负的特点吗
  • 租房公司报销发票怎么开
  • 收到代收款需要开票吗
  • 培训费产生的差额怎么算
  • 会计分录要怎么写
  • 房地产会计核算科目
  • mysql在指定字段前添加
  • 电脑怎么安装安全控件
  • server2008 无法启动
  • 怎么把操作系统转移到另一个盘
  • rhel7.4安装
  • bois开启usb功能
  • windows 10的屏幕键盘快捷键在哪里
  • 如何禁用u盘启动项
  • gzip与zip
  • js中单例模式
  • 网页制作css怎么用
  • javascript可以制作哪些游戏?
  • java script入门
  • 教你学python
  • 浙江国税电子税务局
  • 四川税务局网上办事大厅
  • 新税法折旧年限怎么算
  • 酒店退房不到退房时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设