登入畫面 Svelte 元件

登入畫面 Svelte 元件代表 登入畫面 元件。

登入畫面元件

包含下列元件

登入畫面屬性

屬性類型預設值說明
<LoginScreen> 屬性
opened布林值false允許開啟/關閉登入畫面並設定其初始狀態
animate布林值是否以動畫開啟/關閉模態視窗
containerElHTMLElement
字串
用於掛載模態視窗的元素(預設為應用程式根元素)

登入畫面事件

事件說明
<LoginScreen> 事件
loginScreenOpen登入畫面開始開啟動畫時觸發事件
loginScreenOpened登入畫面完成開啟動畫後觸發事件
loginScreenClose登入畫面開始關閉動畫時觸發事件
loginScreenClosed登入畫面完成關閉動畫後觸發事件

開啟和關閉登入畫面

除了使用 Login Screen 的 open()/close() 方法外,您還可以開啟和關閉它

存取登入畫面實例

您可以透過呼叫元件的 .instance() 方法來存取已初始化的登入畫面實例。例如

<LoginScreen bind:this={component}>...</LoginScreen>

<script>
  let component;

  // to get instance in some method
  component.instance()
</script>


範例

login-screen.svelte
<script>
  import {
    f7,
    Navbar,
    Page,
    LoginScreen,
    ListInput,
    List,
    ListItem,
    Block,
    Button,
    LoginScreenTitle,
    BlockFooter,
    ListButton,
  } from 'framework7-svelte';

  let loginScreenOpened = false;
  let username = '';
  let password = '';

  function signIn() {
    f7.dialog.alert(`Username: ${username}<br>Password: ${password}`, () => {
      f7.loginScreen.close();
    });
  }
</script>

<Page>
  <Navbar title="Login Screen" />
  <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" />
  </List>
  <!-- example-hidden-end -->

  <Block>
    <Button raised large fill loginScreenOpen=".demo-login-screen">As Overlay</Button>
  </Block>

  <Block>
    <Button raised large fill onClick={() => (loginScreenOpened = true)}>
      Open Via Prop Change
    </Button>
  </Block>

  <LoginScreen
    class="demo-login-screen"
    opened={loginScreenOpened}
    onLoginScreenClosed={() => {
      loginScreenOpened = false;
      console.log('foobar');
    }}
  >
    <Page loginScreen>
      <LoginScreenTitle>Framework7</LoginScreenTitle>
      <List form>
        <ListInput
          label="Username"
          type="text"
          placeholder="Your username"
          value={username}
          onInput={(e) => (username = e.target.value)}
        />
        <ListInput
          label="Password"
          type="password"
          placeholder="Your password"
          value={password}
          onInput={(e) => (password = e.target.value)}
        />
      </List>
      <List inset>
        <ListButton onClick={signIn}>Sign In</ListButton>
      </List>
      <BlockFooter>
        Some text about login information.<br />Lorem ipsum dolor sit amet, consectetur adipiscing
        elit.
      </BlockFooter>
    </Page>
  </LoginScreen>
</Page>