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

西安网站制作公司怎么选怎么做营销

西安网站制作公司怎么选,怎么做营销,网站建设方案模板,嘉定网站建设文章目录 前言一、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.khdw.cn/news/2823.html

相关文章:

  • 中建八局第一建设公司网站软文代写新闻稿
  • 做公司网站需要有域名有服务器怎么做网站
  • 做网站 天津seo资源咨询
  • 今日的上海发布宁波百度seo点击软件
  • 舟山网站建设公司seo是什么技术
  • 数据网站有哪些广州网站排名优化公司
  • 芜湖网站建设whwzjs黑帽seo排名优化
  • 做轮播海报的网站免费推广网站大全下载安装
  • 如何建网站费用多少手机百度下载
  • 事业单位 网站备案百度快照优化排名
  • 网站建设五大定位武汉推广系统
  • vi设计 站酷网站策划方案
  • 专业的定制型网站建设广州网络公司
  • 免费网站转app百度问一问
  • 餐饮如何做网络营销seo优化教程自学
  • 县四项措施全力推进政府网站集约化建设点石关键词排名优化软件
  • ps做 网站标准尺寸网站检测
  • 网络舆情分析的免费网站活动推广
  • 东营高端网站建设wordpress建站
  • 注册网站账号违法吗电商网站前端页面内容编写
  • 网站开发怎么报价单郑州seo地址
  • 网站建设价格山东济南兴田德润什么活动seo兼职外包
  • 网站功能说明怎么做seo优化资源
  • 自己做网站哪家好软文素材
  • html5网站制作教程p2p万能搜索种子
  • 世界十大网站排名googlechrome
  • 做的比较好的家具网站首页品牌营销策划公司
  • 太原制作网站的公司市场推广方案模板
  • 没有rss源的网站如何做rss订阅奶茶推广软文200字
  • 微信小程序服务器费用seo怎么学