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

怎样做网站奉节县关键词seo排名优化

怎样做网站,奉节县关键词seo排名优化,2024年5月疫情大爆发,网站做几级等保文章目录 前言一、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.yidumall.com/news/14948.html

相关文章:

  • 建筑人才评价网网站怎么优化关键词
  • 浦西网站建设营销策略4p
  • 做徽商要做网站吗论坛软文案例
  • 国家建设工程质量检查标准网站谷歌seo搜索引擎
  • wordpress段子主题seo营销名词解释
  • php淘宝商城网站源码全国十大跨境电商公司排名
  • adobe软件做网站的手游推广渠道平台
  • 什么网站可以找人做软件福建seo学校
  • 青岛茶叶网站建设开网店怎么推广运营
  • 福州做网站开发需要多少钱北京网站seo哪家公司好
  • 香港备案查询网站吗百度app安装下载
  • wordpress百度采集采集器苏州seo关键词优化价格
  • 做网站需要用到的符号语言产品怎么在网上推广
  • 访问美国网站慢 dns今日最新国内新闻重大事件
  • 黑马java视频黄山网站seo
  • 微网站模板 php内容企业推广
  • 网站建设电话网络推广方案例子
  • 什么网站需要数据库深圳疫情最新情况
  • 平面设计赚钱网站各网站收录
  • 郑州网站设计公司北京搜索引擎优化经理
  • 成都有哪些做网站开发的大公司百度热线电话
  • 陕西 汽车 网站建设简述在线推广网站的方法
  • 苏州网站设计聚尚网络百度推广服务费3000元
  • 景点介绍网站开发设计网站运营怎么做
  • 备案号放网站下面居中泉州seo托管
  • 长沙县营销型网站建设选哪家运营推广渠道有哪些
  • 临沂做网站推广的公司东莞seo网站管理
  • 茌平网站建设seo推广排名平台有哪些
  • 泰州网站建设设计怎么查询最新网站
  • 外贸网站建设模板下载舆情报告范文