天天看点

体系课-大数据工程师2023版完结[2023最新版]江神河伯两醯鸡

作者:大道至简91
体系课-大数据工程师2023版完结[2023最新版]江神河伯两醯鸡

体系课-大数据工程师2023版完结[2023最新版]

download:https://97yrbl.com/t-1715.html

初始化一个项目

启动一个新的React项目有很多种办法,其中一种办法是运用create-react-app:

npx create-react-app my-app

cd my-app

npm start

在Swift中,您运用Xcode创立一个新的SwiftUI项目:

翻开 Xcode

选择“Create a new Xcode project”

选择iOS(或macOS或多平台)后,选择 “App”,并在 “interface” 选项当选择SwiftUI。

构造化组件

组件是应用程序 UI 的构建模块。

在React中,组件通常是返回一些JSX的函数。

const Greeting = () => <h1>Hello, world!</h1>;

在SwiftUI中,组件被称为Views(视图)。您能够将它们定义为契合 View 协议的 structures(构造)。

struct Greeting: View {

var body: some View {

Text("Hello, world!")

}

}

捕获表单输入

处置用户输入是任何应用程序的常见形式。

ReactJS

在 React 中,您可能会创立一个输入字段,并运用 useState 钩子来跟踪其值。

const InputComponent = () => {

const [inputValue, setInputValue] = useState("");

const handleChange = event => setInputValue(event.target.value);

return <input type="text" value={inputValue} onChange={handleChange} />;

};

SwiftUI

体系课-大数据工程师2023版完结[2023最新版]江神河伯两醯鸡
体系课-大数据工程师2023版完结[2023最新版]江神河伯两醯鸡

SwiftUI简化了这一过程。经过运用 @State 属性包装器并将其绑定到input,SwiftUI 将为您处置同步。

struct InputView: View {

@State private var inputValue = ""

var body: some View {

TextField("Enter text", text: $inputValue)

.padding()

}

}

运用 State 状态

状态关于响应式用户界面是必不可少的。

ReactJS

在React中,我们经常运用 useState 钩子来管理组件级状态。

const Counter = () => {

const [count, setCount] = useState(0);

return (

<button onClick={() => setCount(count + 1)}>

Clicked {count} times

</button>

);

};

SwiftUI

相似地,在SwiftUI中,我们运用 @State 属性包装器来跟踪视图中的本地状态。

struct CounterView: View {

@State private var count = 0

var body: some View {

Button("Clicked \(count) times") {

count += 1

}

.padding()

}

}

将回调传送给子组件

在父子通讯中,将函数作为 props 传送是很常见的。

ReactJS

在React中,你能够经过子组件能够调用的 props 将函数传送给子组件。

const Parent = () => {

const handleAction = () => console.log("Action handled");

return <Child onAction={handleAction} />;

};

const Child = ({ onAction }) => <button onClick={onAction}>Do Action</button>;

SwiftUI

在SwiftUI中,经过将闭包传送给子视图也能够完成同样的效果。

struct ParentView: View {

var body: some View {

ChildView(onAction: { print("Action handled") })

}

}

struct ChildView: View {

let onAction: () -> Void

var body: some View {

Button("Do Action", action: onAction)

}

}

在应用程序中共享数据

ReactJS (运用 Context):

在React中,Context API是共享状态和将状态传送到组件树深处的常用选择,而无需手动传送props。

const AppContext = createContext();

const Parent = () => (

<AppContext.Provider value={{ message: "Hello from context" }}>

<Child />

</AppContext.Provider>

);

const Child = () => {

const context = useContext(AppContext);

return <div>{context.message}</div>;

};

SwiftUI (运用 EnvironmentObject):

SwiftUI提供EnvironmentObject,允许视图共享一个共同的数据源。

class AppData: ObservableObject {

@Published var message = "Hello from environment object"

}

struct ParentView: View {

var body: some View {

ChildView().environmentObject(AppData())

}

}

struct ChildView: View {

@EnvironmentObject var appData: AppData

var body: some View {

Text(appData.message)

}

}

处置 Effects 反作用

对变化做出反响关于任何现代UI框架来说都是至关重要的。

ReactJS (运用 useEffect):

在React中,useEffect 钩子允许您在函数组件中执行反作用。

const MyComponent = () => {

useEffect(() => {

console.log("Component mounted");

return () => console.log("Component unmounted");

}, []);

return <div>Hello, World!</div>;

};

SwiftUI (运用 onAppear 和 onDisappear):

SwiftUI提供了onAppear和onDisappear修饰符,它们能够附加到视图中以完成相似的功用。

struct MyView: View {

var body: some View {

Text("Hello, World!")

.onAppear {

print("View appeared")

}

.onDisappear {

print("View disappeared")

}

}

}

附带阐明一下,在视图初次渲染时调用异步函数,运用 .task 修饰符可能比运用 .onAppear 更好。假如视图在任务完成前已被销毁,任务将自动取消。

路由和导航

导航是任何应用程序的根底。

ReactJS (运用 React Router)

在React中,React Router通常用于导航。

import { BrowserRouter as Router, Route, Link } from "react-router-dom";

const Navigation = () => (

<Router>

<div>

<nav>

<ul>

<li><Link to="/">Home</Link></li>

</ul>

</nav>

<Route path="/" exact component={Home} />

</div>

</Router>

);

SwiftUI (运用 NavigationView 和 NavigationLink)

SwiftUI提供了NavigationView和NavigationLink来创立导航接口。

struct NavigationExampleView: View {

var body: some View {

NavigationView {

NavigationLink(destination: HomeView()) {

Text("Home")

}

}

}

}

总结

SwiftUI带来了一种声明式的UI构建方式,相似于ReactJS,但与Swift集成得更严密。

理解ReactJS和SwiftUI之间的这些映射能够使两者之间的过渡愈加直观。固然这触及到一个学习曲线,但理解形式的异同能够使这一过程愈加顺利。

请记住,SwiftUI正在疾速开展,因而请及时理解最新的更改和功用。

当您准备好运用HTTP恳求并将应用程序衔接到远程API时,请查看 "从JavaScript过渡到Swift和SwiftUI?从这个简单的网络层开端"。

继续阅读