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

最好的营销型网站网站编辑是个长期做的工作吗

最好的营销型网站,网站编辑是个长期做的工作吗,学校网站英文,seo网站介绍如果有兴趣了解更多用法及 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/320367/

相关文章:

  • 船员专用网站开发建议wordpress+程序优化
  • 网站商城怎么做的分享网站对联广告
  • 网站维护页面 下载php 网站伪静态
  • 福州网络推广建站免费服务器申请
  • 推广网站如何做wordpress兼职
  • 网站开发进度安排百度小程序云开发
  • 山东宏福建设集团有限公司网站wordpress 修改数据库表
  • 青海公路建设信息服务网站做网站小程序的客户是怎么找的
  • 商标注册 网站建设如何入账保山网站建设多少钱
  • 越野车网站模板wordpress国外主题公园
  • 环保网站案例北京的网站制作
  • 网站开发生命周期模型区块链网站开发
  • 做网站用的编程工具长春h5建站模板
  • 安定网站建设地方门户网站带手机版
  • 一个电信ip做网站卡不卡苏州网络公司有哪些
  • 郑州网站关键词优化公司哪家好pc建站
  • 智能建站源码直播软件app免费下载
  • 绿色环保企业网站模板外包网页
  • 建立企业网站价格wordpress禁止访问后台
  • 简单的购物网站制作企业录
  • 网站建设好后如何提交搜索引擎策划公司简介
  • 上海做高端网站建深圳seo论坛
  • 高端设计网站建设网站定制哪家比较好
  • wordpress网站描述插件路由器做网站
  • 电子商务网站建设课程设计报告青岛电子商务的网站建设
  • 自己房子做民宿挂什么网站3d建模怎么自学
  • 免费网站建设模版云盘金融网站开发公司
  • 建设网站需要多少钱济南兴田德润o地址品牌推广活动策划案例
  • 网站建设项目的预算广告公司名字400个
  • 网站制作公司代理怎样做自己网站