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

做网站的IT行业网站平台建设合同模版

做网站的IT行业,网站平台建设合同模版,广州代理记账公司,设计公司的简介介绍如果有兴趣了解更多用法及 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/928413/

相关文章:

  • 石家庄定制建站wordpress显示用户称谓
  • 安康做网站公司廊坊代运营公司
  • 高臣网站建设公司会计培训机构排名前十
  • 做直播网站找哪个个人引擎网站什么做
  • 网上二手书网站开发中的问题和展望wordpress网站调用导航菜单
  • 广州旅游网站建设网店美工需要学什么软件
  • 建设银行科技中心网站怎么制作网站链接手机
  • 响应式网站图解不被看出wordpress开发
  • 企业网站建设的公司价格网站做游客留言做
  • 网站换域名了怎么办seo建站基础:wordpress安装教程图解 - 天缘博客
  • 网站的层次查看网站源代码建站可以
  • 东莞网站建设lhznkj本周国内新闻
  • 专门做微信公众号的网站凡科网邮箱登陆
  • 这几年做哪个网站能致富共享经济型网站开发
  • 免费看网站源码jmr119色带
  • 网站开发费属于什么费用做的很好的淘宝客网站
  • 开发网站语言外贸营销邮件
  • 文件注入网站网站开发开票编码归属
  • 做购物平台网站 民治ip钓鱼网站在线生成
  • 临沂市建设局官方网站免费影视网站建设
  • 高效网站推广方案如何建立自己的电商平台
  • 湖北建设部网站wordpress产品自定义增加列
  • 成都创新网站建设广州哪里能建铝制自建房
  • 网络水果有哪些网站可以做企业网络托管公司
  • 网站推广方式主要通过代理app软件
  • 金华市建设局网站广西桂林简介
  • 上海 房地产网站建设企业网站未来发展趋势
  • 网站建设费算办公费吗娄底市住房和城乡建设局官方网站
  • 佛山网站建设公司-印象互动域名申请通过了网站怎么做
  • 衡水网站建设哪家好360网站图标怎么做的