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

seo公司上海惠州seo外包

seo公司上海,惠州seo外包,哈尔滨制作各种证件,网站上的彩票走势图是怎么做的前言 最近接到了一个需求,隔壁嵌入式部门希望我们用前端解析渲染Kconfig表单。这篇文章用来记录一下本次使用hook pinia vue3的经验 hooks hooks的概念最早是在 React 中听到的,虽然早些时间也写过一点react,但也只是照葫芦画瓢&#xf…

前言

最近接到了一个需求,隔壁嵌入式部门希望我们用前端解析渲染Kconfig表单。这篇文章用来记录一下本次使用hook + pinia + vue3的经验

hooks

hooks的概念最早是在 React 中听到的,虽然早些时间也写过一点react,但也只是照葫芦画瓢,并不得要领。比如我一直觉得所谓的hook就是像react一样,使用以下语法

// react hook 写法
const [value, setValue] = useValue();// vue2 普通写法
data: {value
},
method: {setValue(newVal) {...}
}

可以看见,其实原始的写法与hook的写法差距是蛮大的。
原始是在data里创建变量,至于变量的更新,自己在method里定义函数即可。
而hook的写法是通过 useXXX() 创建变量和变量更新的函数。

那么hook的写法,到底有什么好处呢?

逻辑复用、可插拔

export function useCounter() {const count = ref(0);function increment() {count.value++;}function decrement() {count.value--;}return {count,increment,decrement};
}

上述示例中,useCounter 函数用于创建一个计数器逻辑,包含了一个 count 变量和两个操作函数 incrementdecrement。可以在多个组件中使用 useCounter 函数,实现逻辑的复用。

如果是原始的方式,我们就必须在每个页面写 counterincrementdecrement 是一件繁琐的事情。当然,我们也可以抽离,但抽离到单独的文件中去引用时,又会有作用域的问题,导致每个页面使用的 counter 变量是同一个变量,会出现新的问题。

于是不得不再提到一个实用的场景: flag 标志位 控制显示与隐藏。

// hook.ts
export function useFlag(initVal: boolean) {const flag = ref(initVal);function setFlag(newVal: boolean) {flag.value = newVal}return {flag,setFlag};
}// 页面中使用
const { flag, setFlag } = useFlag(true);

在上述代码中,最后在页面使用了 hook ,每个页面都可以使用这个 hook 且作用域不同,不会相互影响。

更易抽离,逻辑更清晰

上面提到了 useFlag 的 hook ,此时有一个新需求,当每个组件的显隐都需要进行一些相同的逻辑判断控制显隐,此时怎么办?
我们可以创建一个新的 hook

import { useFlag } from '@/hooks/useFlag'
import { handleDepends_on } from '@/utils/util';export const useDepend = (data) => {const { result } = useStore('result');const { flag, setFlag } = useFlag(true);const dependList = handleDepends_on(data.depends_on);watch(result, () => {// 首先置位truesetFlag(true)// 如果出现不满足,则置位falsedependList.map(item => {if (!result.value[item]) setFlag(false)})}, { immediate: true, deep: true })return {flag}
}

pinia 中的 result 变量变化时,会触发 watch 监听函数。如果 flag 改变,页面里的 flag 也会同步,并更新视图。

因此只需要在每个需要逻辑判断的页面输入两行,即可完成判断逻辑的复用~

import { useDepend } from '@/hook/useDepend';
const { flag } = useDepend('数据')

在这里插入图片描述

http://www.mmbaike.com/news/59737.html

相关文章:

  • asp动态网站开发 试题互联网品牌营销公司
  • 政府网站建设的有关规定哪里可以买链接网站
  • 智能建站大师官网平台可以免费发帖的网站
  • 网站运营管理方案申请域名的方法和流程
  • 如何成为网站开发工程师宁波seo如何做推广平台
  • 南宁网站建设加q479185700西安网站关键词排名
  • 宁波优质网站制作哪家好现在搜什么关键词能搜到网站
  • 360建筑网是什么appstore关键词优化
  • 郑州响应式网站建设seo优化服务价格
  • 个人网站设计模版html软文300字案例
  • 怎么做像小刀网一样的网站百度seo新规则
  • 国外购买空间的网站有哪些合肥seo按天收费
  • 上海哪个网站能应聘做家教的关键词优化策略有哪些
  • 商务网站开发作业广州优化营商环境条例
  • 百度怎样收录到网站百度公司电话
  • 抖音代运营协议哈尔滨seo优化
  • 扫码支付做进商城网站热点新闻事件
  • 正常做一个网站多少钱公司想建个网站怎么弄
  • 以蓝色为主色调的网站2345网址导航浏览器下载
  • 最新网站制作网络优化工程师主要做什么
  • 天气网站建设外链推广论坛
  • 给企业做网站推广好么网络营销服务外包
  • 企业为什么要做网站投放广告怎么投放
  • 网站建设之织梦模板市场营销公司有哪些
  • 什么值得买 网站开发百度灰色关键词排名技术
  • 凤楼网站怎么做的百度关键词排行榜
  • 视频网站怎样做seo关键词排名优化推荐
  • 可以做微信推送的网站外链发布软件
  • 中国公路建设招标网站吉林百度查关键词排名
  • 房地产网站制作公司海外免费网站推广