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

婚恋网站上认识人 带你做原油交易企业网站推广外包

婚恋网站上认识人 带你做原油交易,企业网站推广外包,青岛做网站的有哪些,做网站的格言Preact是一个轻量级的JavaScript库,它提供了与React相似的API,但体积更小,性能更优。Preact的核心理念是尽可能地保持与React的兼容性,同时去除不必要的部分,使其成为一个理想的替代品,尤其是在对性能和包大…

Preact是一个轻量级的JavaScript库,它提供了与React相似的API,但体积更小,性能更优。Preact的核心理念是尽可能地保持与React的兼容性,同时去除不必要的部分,使其成为一个理想的替代品,尤其是在对性能和包大小有严格要求的场景中。本文将详细介绍Preact的基本概念、核心API、性能优势以及如何逐步迁移或开始使用Preact。

Preact简介

Preact由Jason Miller在2016年创建,其设计目标是提供一个与React API一致的框架,但体积更小,运行速度更快。Preact的核心库大小仅为3KB(gzip压缩后),而React的大小约为25KB(gzip压缩后)。尽管体积小,Preact仍然提供了React的大部分功能,包括虚拟DOM、组件化、状态管理和生命周期方法。

Preact基础

安装Preact

首先,确保你已经安装了Node.js和npm。然后,使用npm安装Preact和Preact的DOM适配器:

npm install preact preact-render-to-string
创建第一个Preact应用

创建一个HTML文件,引入Preact和Preact的DOM适配器,编写一个简单的组件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Preact App</title>
</head>
<body><div id="root"></div><script src="https://unpkg.com/preact/preset.js"></script><script>function Hello({ name }) {return <h1>Hello, {name}!</h1>;}preact.render(<Hello name="World" />, document.getElementById('root'));</script>
</body>
</html>

Preact组件

函数组件

在Preact中,函数组件是最常用的组件类型,它接收props作为参数,返回一个或多个虚拟DOM节点:

const Greeting = props => <h1>Hello, {props.name}!</h1>;preact.render(<Greeting name="John Doe" />, document.getElementById('root'));
类组件

类组件继承自preact.Component,可以使用state和生命周期方法:

import { Component } from 'preact';class Counter extends Component {state = { count: 0 };increment = () => {this.setState({ count: this.state.count + 1 });};render() {return (<div><p>You clicked {this.state.count} times</p><button onClick={this.increment}>Click me</button></div>);}
}preact.render(<Counter />, document.getElementById('root'));

状态与Props

Props

组件可以通过props属性接收外部传递的数据:

const Profile = ({ name, age }) => (<div><h1>Name: {name}</h1><p>Age: {age}</p></div>
);preact.render(<Profile name="Alice" age={25} />, document.getElementById('root'));
State

组件内部的状态通过setState方法更新,这将触发组件重新渲染:

class Counter extends Component {state = { count: 0 };increment = () => {this.setState({ count: this.state.count + 1 });};render() {return (<div><p>You clicked {this.state.count} times</p><button onClick={this.increment}>Click me</button></div>);}
}

生命周期方法

Preact的类组件支持生命周期方法,但命名略有不同:

  • componentWillLoad():组件即将加载时调用。
  • componentDidLoad():组件加载完成后调用。
  • componentWillUpdate():组件即将更新时调用。
  • componentDidUpdate():组件更新完成后调用。
  • componentWillUnmount():组件即将卸载时调用。
class LifecycleDemo extends Component {state = { count: 0 };componentDidMount() {console.log('Component did mount');}componentDidUpdate() {console.log('Component did update');}componentWillUnmount() {console.log('Component will unmount');}render() {return (<div><p>{this.state.count}</p><button onClick={() => this.setState({ count: this.state.count + 1 })}>Increment</button></div>);}
}

Hooks

Preact支持React Hooks,包括useStateuseEffect等:

import { useState } from 'preact/hooks';const Counter = () => {const [count, setCount] = useState(0);return (<div><p>You clicked {count} times</p><button onClick={() => setCount(count + 1)}>Click me</button></div>);
};

虚拟DOM与Diff算法

Preact使用虚拟DOM来提高性能,它通过比较前后两次渲染的虚拟DOM树,仅更新有变化的部分,而不是重绘整个页面。

事件处理

Preact的事件处理与React类似,使用驼峰式命名,如onClick:

const Button = ({ onClick }) => <button onClick={onClick}>Click me</button>;preact.render(<Button onClick={() => alert('Clicked!')} />, document.getElementById('root'));

条件渲染与列表渲染

Preact支持使用三元运算符或逻辑与运算符进行条件渲染,使用map函数进行列表渲染:

const UserList = ({ users }) => (<ul>{users.map(user => (<li key={user.id}>{user.name}</li>))}</ul>
);

Context API

Preact的Context API用于跨组件传递数据,避免了props drilling

import { createContext, useContext } from 'preact/hooks';const ThemeContext = createContext('light');const ThemeProvider = ({ children }) => (<ThemeContext.Provider value="dark">{children}</ThemeContext.Provider>
);const App = () => {const theme = useContext(ThemeContext);return <div>Current theme is {theme}</div>;
};preact.render(<ThemeProvider><App /></ThemeProvider>,document.getElementById('root')
);

Preact CLI与构建工具

Preact CLI是一个脚手架工具,用于快速创建和配置Preact项目。它提供了与Create React App类似的功能,包括代码拆分、热模块替换和生产构建等功能。

# 创建新项目
npx create-preact-app my-app
cd my-app
npm start
http://www.khdw.cn/news/12556.html

相关文章:

  • 网站开发合同 附件百度关键词查询排名怎么查
  • 万网建网站西安网站seo公司
  • 中小网站推广 一级域名还是二级域名站长工具爱站网
  • 多网站后台问题武汉电脑培训学校有哪些
  • 杭州软件开发制作北京seo营销公司
  • 中国建设银行官网站保本理财站外推广平台有哪些
  • 南昌网站开发百度推广首次开户需要多少钱
  • 做网站需要用什么语言湖南 seo
  • 微信网站建设计入什么科目站长工具app
  • 广州企业网站模板建站网站怎么优化关键词快速提升排名
  • 建设电动车官方网站买链接网
  • 当地自己的淘宝网站怎么做百度客服人工在线咨询
  • 在那个网站做推广实用站长统计 网站统计
  • 网站 app 哪个先做线上营销活动方案
  • 江苏建设厅官网网站百度seo课程
  • 网站集群怎么做网站排名工具
  • 建站成功是怎么回事武汉关键词排名工具
  • 上海全国网站建设南宁seo推广优化
  • 请人做网站要注意什么经典营销案例分析
  • 宿迁装饰网站建设公司排名cpc广告接单平台
  • 怎么在微信上做网站怎么拿到百度推广的代理
  • 旅游网站开发的意义网站推广的常用途径有哪些
  • 做商业网站需要注册公司吗互动营销的概念
  • 小程序公司有必要做吗久久seo综合查询
  • 网站建设 风险网络运营需要学什么
  • 推广联盟有哪些平台seo软件优化工具软件
  • 教师网站建设企业实践总结搭建网站流程
  • 商城移动端网站开发seo常用工具有哪些
  • 网站编程基础识图
  • 发布网站搭建教程微信营销技巧