当前位置: 首页 > news >正文

2018做网站开发一个月工资多少南宁网站建设速成培训班

2018做网站开发一个月工资多少,南宁网站建设速成培训班,铭坐网站建设,wordpress非凡主题里导航下拉菜单文章目录 前言一、Hooks是什么?二、图片转换Base641.Hooks2.使用 三、监听元素宽高(自定义指令Hooks)1.Hooks2.使用 总结 前言 本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。 一、Hooks是什么? Hooks用来处…

文章目录

  • 前言
  • 一、Hooks是什么?
  • 二、图片转换Base64
    • 1.Hooks
    • 2.使用
  • 三、监听元素宽高(自定义指令+Hooks)
    • 1.Hooks
    • 2.使用
  • 总结


前言

本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。


一、Hooks是什么?

Hooks用来处理复用代码逻辑的一些封装,Hooks与Mixins不同点在于Hooks是函数
在vue2中是以Mixins形式将相同的逻辑抽离,各个组件只需要引入mixins,就能使用,mixins存在覆盖问题:
组件data、methods、filters会覆盖mixins中同名data、methods、filters

Mixins生命周期

使用VueUse库可以使用100多项用Hooks完成的功能

二、图片转换Base64

1.Hooks

代码如下:

type Options = {el:string
}
export default function (options:Options):Promise<{baseUrl:string}> {// @ts-ignorereturn new Promise((resolve)=>{onMounted(()=>{let img:HTMLImageElement = document.querySelector(options.el) as HTMLImageElementimg.onload = () =>{resolve({baseUrl:base64(img)})}})const base64 = (el:HTMLImageElement) =>{const canvas = document.createElement('canvas')const ctx = canvas.getContext('2d')canvas.width = el.widthcanvas.height = el.heightctx?.drawImage(el,0,0,canvas.width,canvas.height)return canvas.toDataURL('image/jpg')}})
}

2.使用

代码如下:

import useBase64 from '../../../../hooks/index'
useBase64({el: '#img'
}).then(res=>{console.log(res.baseUrl)
})

三、监听元素宽高(自定义指令+Hooks)

1.Hooks

这里要注意的是vue插件需要定义install方法,在app.use()挂载时会调用该方法

/*** interSectionObserver 主要监听元素是否在视口内* MutationObserver 主要监听子集的变化 以及 元素的增删改查* ResizeObserver 主要监听元素宽高的变化*/
// @ts-ignore
import type { APP } from 'vue'/*** 自定义Hooks监听元素宽高变化* @param el* @param callback*/
function useResize(el:HTMLElement,callback:Function) {let resize = new ResizeObserver((entries)=>{callback(entries[0].contentRect)})resize.observe(el)
}/*** 自定义指令* vue插件 必须要有install方法,在app.use()时会调用该方法* @param app*/
const install = (app:APP) => {app.directive('resize', {mounted(el,binding) {useResize(el,binding.value)}})
}
// 将install 挂载到useResize上的install上
useResize.install = install
export default useResize

2.使用

<script setup lang="ts">import {onMounted} from "vue";
import useResize from "../../../hooks/useResize";
// 自定义Hooks
onMounted(()=>{useResize(document.querySelector('.box') as HTMLElement,(e:any)=>{console.log('自定义Hooks',e)})
})
// 自定义指令
const aaa = (e)=>{console.log('自定义指令',e)
}
</script><template>
<div v-resize="aaa" class="box"></div>
</template><style scoped>
.box{overflow: hidden;border: 2px solid black;resize: both;width: 300px;height: 300px;
}
</style>

总结

本文主要记录了vue3学习中自定义Hooks和vue2中Mixins的使用与案例。

http://www.yayakq.cn/news/31929/

相关文章:

  • 鲜花网站的网络营销与策划书网络直播营销的方式有哪些
  • 确定网站文案软件下载网站 知乎
  • 网站背景品牌推广方式有哪些
  • 建设银行理财产品网站惠州网页模板建站
  • 做包装找灵感看什么网站全国企业信息查询系统官网
  • 网站建设首页该放什么怎样做一个购物型的网站
  • 团队氛围建设 网站网络舆情监测软件
  • qq空间做单页网站重庆地产网站建设方案
  • 做外贸没有网站需要注意什么条件怎么登录已注册的网站
  • 网站发布与推广方案tp做网站
  • 网站建设与开发课程介绍泸州房产网
  • 马家堡做网站的公司介绍重庆网页设计
  • 怎么设计一个自己的网站建设促销网站前的市场分析
  • 服装公司网站建设策划中山模板自助建站
  • 旅游公司网站 优帮云wordpress深度开发
  • 古典风格网站模版昆明seo博客南网站建设
  • 商城网站建设合同范本wordpress徽章
  • 前端做网站需要学什么哪个平台推广效果好
  • 电子商务网站规划原则内部的网络营销推广渠道
  • 贵阳网站建设公司哪家好世界500强排名一览表
  • 网站404页面做晚了苏州网站建设集团
  • 哈尔滨网页设计网站模板安徽省港航建设投资集团网站
  • 河北商城网站建设价格做律师网站电销
  • 网视易网站建设wordpress id连续
  • 做网站和维护网站网站建设公司专业开发北京网站
  • 英德住房和城乡建设局网站wordpress怎么导入自己的php
  • 公司做网站比较好的平台noscript wordpress
  • 徐州发布网站网站开发的常见编程语言有哪些
  • 秦皇岛网站建设汉狮怎么样主页模板
  • 网站备案 主体黑名单建站平台选择建议