登入畫面 React 元件
登入畫面 React 元件代表 登入畫面 元件。
登入畫面元件
包含下列元件
LoginScreen
- 登入畫面元素LoginScreenTitle
- 登入畫面標題元素
登入畫面屬性
屬性 | 類型 | 預設值 | 說明 |
---|---|---|---|
<LoginScreen> 屬性 | |||
opened | 布林值 | false | 允許開啟/關閉登入畫面並設定其初始狀態 |
animate | 布林值 | 是否以動畫開啟/關閉模式 | |
containerEl | HTMLElement 字串 | 掛載模式的元素(預設為應用程式根元素) |
登入畫面事件
事件 | 說明 |
---|---|
<LoginScreen> 事件 | |
loginScreenOpen | 登入畫面開始開啟動畫時觸發事件 |
loginScreenOpened | 登入畫面完成開啟動畫後觸發事件 |
loginScreenClose | 登入畫面開始關閉動畫時觸發事件 |
loginScreenClosed | 登入畫面完成關閉動畫後觸發事件 |
開啟和關閉登入畫面
除了登入畫面 open()/close() 方法外,您還可以開啟和關閉它
- 使用 登入畫面 API
- 將
true
或false
傳遞給其opened
屬性 - 按一下具有相關
loginScreenOpen
屬性(開啟)和loginScreenClose
屬性(關閉)的 連結 或 按鈕
範例
login-screen.jsx
import React, { useState } from 'react';
import {
Navbar,
Page,
LoginScreen,
ListInput,
List,
ListItem,
Block,
Button,
LoginScreenTitle,
BlockFooter,
ListButton,
f7,
} from 'framework7-react';
export default () => {
const [loginScreenOpened, setLoginScreenOpened] = useState('');
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const signIn = () => {
f7.dialog.alert(`Username: ${username}<br>Password: ${password}`, () => {
f7.loginScreen.close();
});
};
return (
<Page>
<Navbar title="Login Screen"></Navbar>
<Block>
<p>
Framework7 comes with ready to use Login Screen layout. It could be used inside of page or
inside of popup (Embedded) or as a standalone overlay:
</p>
</Block>
{/* example-hidden-start */}
<List strong insetMd outlineIos>
<ListItem link="/login-screen-page/" title="As Separate Page"></ListItem>
</List>
{/* example-hidden-end */}
<Block>
<Button raised large fill loginScreenOpen=".demo-login-screen">
As Overlay
</Button>
</Block>
<Block>
<Button
raised
large
fill
onClick={() => {
setLoginScreenOpened(true);
}}
>
Open Via Prop Change
</Button>
</Block>
<LoginScreen
className="demo-login-screen"
opened={loginScreenOpened}
onLoginScreenClosed={() => {
setLoginScreenOpened(false);
}}
>
<Page loginScreen>
<LoginScreenTitle>Framework7</LoginScreenTitle>
<List form>
<ListInput
label="Username"
type="text"
placeholder="Your username"
value={username}
onInput={(e) => {
setUsername(e.target.value);
}}
/>
<ListInput
label="Password"
type="password"
placeholder="Your password"
value={password}
onInput={(e) => {
setPassword(e.target.value);
}}
/>
</List>
<List inset>
<ListButton onClick={signIn}>Sign In</ListButton>
<BlockFooter>
Some text about login information.
<br />
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</BlockFooter>
</List>
</Page>
</LoginScreen>
</Page>
);
};
獨立登入畫面頁面
login-screen-page.jsx
import React, { useState } from 'react';
import {
Page,
LoginScreenTitle,
List,
ListInput,
ListButton,
BlockFooter,
f7,
} from 'framework7-react';
export default ({ f7router }) => {
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const signIn = () => {
f7.dialog.alert(`Username: ${username}<br>Password: ${password}`, () => {
f7router.back();
});
};
return (
<Page noToolbar noNavbar noSwipeback loginScreen>
<LoginScreenTitle>Framework7</LoginScreenTitle>
<List form>
<ListInput
label="Username"
type="text"
placeholder="Your username"
value={username}
onInput={(e) => {
setUsername(e.target.value);
}}
/>
<ListInput
label="Password"
type="password"
placeholder="Your password"
value={password}
onInput={(e) => {
setPassword(e.target.value);
}}
/>
</List>
<List inset>
<ListButton onClick={signIn}>Sign In</ListButton>
<BlockFooter>
Some text about login information.
<br />
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</BlockFooter>
</List>
</Page>
);
};