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

襄阳网站定制网站内容建设

襄阳网站定制,网站内容建设,模板之家免费下载方法,拉新推广怎么做代理目的:将公共逻辑提取出来,类似于 mixin,解决了mixin的设计缺陷。 React 和 Vue 自定义 Hooks 实现对比 React 自定义 Hooks React 的自定义 Hooks 是 JavaScript 函数,它们以 use 开头,可以调用其他 Hooks。 基本规则 …

目的:将公共逻辑提取出来,类似于 mixin,解决了mixin的设计缺陷。

React 和 Vue 自定义 Hooks 实现对比

React 自定义 Hooks

React 的自定义 Hooks 是 JavaScript 函数,它们以 use 开头,可以调用其他 Hooks。

基本规则

  1. 必须以 use 开头命名
  2. 可以在内部调用其他 Hooks
  3. 只能在 React 函数组件或其他 Hooks 中调用

示例:自定义计数器 Hook

import { useState } from 'react';// 自定义计数器 Hook
function useCounter(initialValue = 0, step = 1) {const [count, setCount] = useState(initialValue);const increment = () => setCount(prev => prev + step);const decrement = () => setCount(prev => prev - step);const reset = () => setCount(initialValue);return { count, increment, decrement, reset };
}// 使用自定义 Hook
function CounterComponent() {const { count, increment, decrement, reset } = useCounter(0, 2);return (<div><p>Count: {count}</p><button onClick={increment}>+</button><button onClick={decrement}>-</button><button onClick={reset}>Reset</button></div>);
}

示例:自定义数据获取 Hook

import { useState, useEffect } from 'react';function useFetch(url) {const [data, setData] = useState(null);const [loading, setLoading] = useState(true);const [error, setError] = useState(null);useEffect(() => {const fetchData = async () => {try {const response = await fetch(url);if (!response.ok) throw new Error('Network response was not ok');const result = await response.json();setData(result);} catch (err) {setError(err);} finally {setLoading(false);}};fetchData();}, [url]);return { data, loading, error };
}// 使用示例
function UserList() {const { data, loading, error } = useFetch('https://api.example.com/users');if (loading) return <div>Loading...</div>;if (error) return <div>Error: {error.message}</div>;return (<ul>{data.map(user => (<li key={user.id}>{user.name}</li>))}</ul>);
}

Vue 3 组合式 API (类似 Hooks 的概念)

Vue 3 的组合式 API 提供了类似 React Hooks 的功能,但实现方式不同。

基本规则

  1. 使用 refreactive 创建响应式数据
  2. 使用 computed 创建计算属性
  3. 使用 watchwatchEffect 监听变化
  4. 将逻辑组织在 setup 函数或 <script setup>

示例:自定义计数器 Hook

<script setup>
import { ref } from 'vue';// 自定义计数器组合函数
function useCounter(initialValue = 0, step = 1) {const count = ref(initialValue);const increment = () => count.value += step;const decrement = () => count.value -= step;const reset = () => count.value = initialValue;return { count, increment, decrement, reset };
}// 使用自定义组合函数
const { count, increment, decrement, reset } = useCounter(0, 2);
</script><template><div><p>Count: {{ count }}</p><button @click="increment">+</button><button @click="decrement">-</button><button @click="reset">Reset</button></div>
</template>

示例:自定义数据获取 Hook

<script setup>
import { ref, onMounted } from 'vue';function useFetch(url) {const data = ref(null);const loading = ref(true);const error = ref(null);const fetchData = async () => {try {const response = await fetch(url);if (!response.ok) throw new Error('Network response was not ok');data.value = await response.json();} catch (err) {error.value = err;} finally {loading.value = false;}};onMounted(fetchData);return { data, loading, error };
}// 使用示例
const { data, loading, error } = useFetch('https://api.example.com/users');
</script><template><div v-if="loading">Loading...</div><div v-else-if="error">Error: {{ error.message }}</div><ul v-else><li v-for="user in data" :key="user.id">{{ user.name }}</li></ul>
</template>

关键区别

  1. 响应式系统:

    • React: 依赖状态更新触发重新渲染
    • Vue: 基于 Proxy 的自动响应式系统
  2. 依赖管理:

    • React Hooks 需要手动声明依赖数组
    • Vue 自动跟踪依赖关系
  3. 生命周期:

    • React: 使用 useEffect 模拟生命周期
    • Vue: 提供明确的生命周期钩子函数
  4. 语法:

    • React: 必须在函数组件顶层调用 Hooks
    • Vue: 可以在 <script setup> 中自由组织代码

两种框架的自定义 Hook/组合函数都旨在提高代码的可复用性和组织性,但实现方式和理念有所不同。

http://www.dtcms.com/wzjs/780899.html

相关文章:

  • 在服务器上搭建网站网站运营改进的点
  • 重庆网站设计公司排名网站建设 微信公众号
  • 五金网站方案沈阳关键字优化
  • 北京矿建建设集团有限公司 网站投资公司取名字大全
  • 惠州建设工程造价管理站网站个人又什么办法做企业网站
  • 建立网站的详细步骤图解一个人做网站 没有人写文章怎么办
  • 深圳企业网站建设价格网站建设 应该考虑什么
  • 网站开发合同要注意哪些建设网站是普通办公吗
  • 如何做攻击类型网站新闻发布会发言稿范文
  • 深圳网站建设公司排行wordpress 文章完整导出文章及文章中的图片
  • 创建平台网站下载环球易购招聘网站建设
  • 网站找哪家做较好dedecms中餐网站模板
  • 企业网站后台管理系统模板下载wordpress 显示异常
  • 昆明建站公司推荐集团公司成立条件
  • 网站代码字体变大大学城网站开发公司
  • 在哪个网站做图片视频带音乐中山网站建设策划
  • 设计网站案例网站wordpress旅游网站
  • 网站的简单布局百合怎么做网站
  • 烟台专业的网站建站公司高端交互式网站建设
  • 二建证从住房建设厅网站调出流程浦项建设(中国)有限公司网站
  • 做网站一定需要主机吗如何免费建立一个自己的网站
  • 怎么仿照别人网站做招商加盟的网站
  • sql网站发布流程html代码运行
  • 移动网站开发环境 主流聚名网下载
  • 精美旅游网站模板wordpress商城主题 原创
  • 旅游网站建站西部数据网站助手
  • 网站开发工资高么做微商童装网站
  • 建站排名珠海网站制作推荐
  • 好网站目录开发公司资质查询
  • 怎么样创建做零食山楂的网站wordpress适合外贸的主题