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

大连服务公司 网站无锡市建设招标网站

大连服务公司 网站,无锡市建设招标网站,简约淘宝网站模板免费下载,淘宝网站建设多少钱如果有兴趣了解更多用法及 api ,点击此处解锁中文文档 前言 是不是觉得 Redux 很难用?想用 Context 代替,但是你知道吗,Context 也有个很大的缺点: context value发生变化时,所有用到这个context的组件都…

如果有兴趣了解更多用法及 api ,点击此处解锁中文文档

前言

是不是觉得 Redux 很难用?想用 Context 代替,但是你知道吗,Context 也有个很大的缺点:

  • context value发生变化时,所有用到这个context的组件都会被重新渲染,即使 component 需要的 state 可能根本沒有变动。基于 context 维护的模块越多,影响范围越大, 某些情况下会导致页面明显卡顿。
  • 另外,它依赖 Context Provider 包裹你的应用程序。

那么试试 zustand 吧,当然你可以选择 mobx,
zustand 与 mobx 最大的差别在于:

  • zustand 的状态更新遵循 react 思想,采用自然不可变更新, 而 mobx 类似 vue,基于数据劫持直接修改状态本身。
  • 体现在开发层面最直观的差异就是:
    • zustand 状态更新,新状态覆盖旧状态
    state = {a: 1}update(){stae = {a: 2} 
    }
    
    • mobx 状态更新,直接修改属性值
    state = {a: 1}update(){stae.a++
    }
    

React 三部曲

Step 1: 安装

npm install zustand # or yarn add zustand

Step 2: Store 初始化

创建的 store 是一个 hook,你可以放任何东西到里面:基础变量,对象、函数,状态必须不可改变地更新,set 函数合并状态以实现状态更新。

import { create } from 'zustand'const useBearStore = create((set) => ({bears: 0,increasePopulation: () => set((state) => ({ bears: state.bears + 1 })),removeAllBears: () => set({ bears: 0 }),
}))

Step 3: Store 绑定组件,就完成了!

可以在任何地方使用钩子,不需要提供 provider
基于 selector 获取您的目标状态,组件将在状态更改时重新渲染。

选择目标状态:bears
function BearCounter() {const bears = useBearStore((state) => state.bears)return <h1>{bears} around here ...</h1>
}
更新目标状态:bears
function Controls() {const increasePopulation = useBearStore((state) => state.increasePopulation)return <button onClick={increasePopulation}>one up</button>
}

Vue 三部曲

什么,你还想试试在 Vue 中使用?那么 Step1 与 Step2 基本一致,不同的是 Step3 (Store 绑定组件):

Step 1: 安装

npm install zustand-vue # or yarn add zustand-vue

Step 2: Store 初始化

创建的 store 是一个 hook,你可以放任何东西到里面:基础变量,对象、函数,状态必须不可改变地更新,set 函数合并状态以实现状态更新。

import create from "zustand-vue";const useBearStore = create((set) => ({bears: 0,increasePopulation: () => set((state) => ({ bears: state.bears + 1 })),removeAllBears: () => set({ bears: 0 }),
}))export default useBearStore

Step 3: Store 绑定组件,就完成了!

基于 selector 获取您的目标状态,组件将在状态更改时重新渲染。

Store 绑定组件在 vue3vue2 中有所不同。

<template><div>store.bears: {{ bears }}</div><button @click="increasePopulation">increasePopulation</button><button @click="removeAllBears">removeAllBears</button>
</template><script>
import useBearStore from "./store";const increasePopulation = useBearStore((state) => state.increasePopulation);
const removeAllBears = useBearStore((state) => state.removeAllBears);export default {data() {return {store: useBearStore(),bears: useBearStore((state) => state.bears),};},methods: {increasePopulation,removeAllBears,},
};
http://www.yayakq.cn/news/266667/

相关文章:

  • 在哪些软件上建设网站学校网站的建设目标是什么意思
  • 公司网站别人做的怎么签合同那种类型的网站可以自己做也可以赚钱
  • 南宁学网站开发8g流量网站
  • 华为官方网站湖南网站建设小公司排名
  • 网站的弹窗是用什么软件做的百度网站建设是什么
  • 免费的开源网站平面设计好的网站
  • 沈阳网站制作推广app需要申请网站的子域名吗
  • mip网站建设成都有名的建筑公司有哪些
  • 做网站需要用什么技术linux tomcat 网站目录
  • 学生做网站购物网站开发的基本介绍
  • 视频代做网站网站建设网站建设哪里有
  • 物流wap网站模板在菲律宾做网络网站犯法吗
  • 大量网站开发视频 文档VIP资源wordpress数据库教程
  • 网站建设可研报告服务器搭建wordpress
  • 营销网站建设内容服务好的网站制作
  • 网站视频怎么做的好怎么给网站引流
  • 国内外html5网站建设状况优化seo
  • 张槎建网站公司企业名录app哪个好
  • 永清县建设局网站app软件定制收费
  • 网站关键词多少合适接工程的app软件
  • 实用的网站如何用discuz做网站
  • 郑州企业网站优化排名网站推广排名公司
  • 用网站做淘客怎么赚钱天府健康通二维码图片高清下载
  • 姑苏企业建设网站公司中国建筑官网采购平台
  • 番禺网站建设wwiwwordpress 百度广告插件
  • 拖拽建站模板昆山网站建设河北
  • 淄博网站建设网站推广优化电池网站建设 中企动力
  • 江都网站建设哪个网站可以做付邮免费送活动
  • 什么网站可以做PS 写论文兼职外贸网站建设是什么
  • 网站开发推荐一本书搭建网站内链系统