登录屏幕 Svelte 组件

登录屏幕 Svelte 组件表示登录屏幕组件。

登录屏幕组件

包含以下组件:

登录屏幕属性

属性类型默认描述
<LoginScreen> 属性
opened布尔值false允许打开/关闭登录屏幕并设置其初始状态
animate布尔值模态是否应该以动画方式打开/关闭
containerElHTMLElement
字符串
模态挂载到的元素(默认为应用根元素)

登录屏幕事件

事件描述
<LoginScreen> 事件
loginScreenOpen当登录屏幕开始打开动画时将触发事件
loginScreenOpened登录屏幕完成打开动画后触发事件
loginScreenClose当登录屏幕开始关闭动画时触发事件
loginScreenClosed登录屏幕完成关闭动画后触发事件

打开和关闭登录屏幕

除了 Login Screen open()/close() 方法外,您还可以通过以下方式打开和关闭它:

访问登录屏幕实例

您可以通过调用访问登录屏幕初始化实例.instance()组件的方法来访问初始化的Sheet Modal实例。例如:

<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>