Vonic简明教程(二)组件和服务

HTML

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/ionic/css/ionic.css">
<script src="https://unpkg.com/[email protected]/dist/axios.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vue.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vue-router.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/vonic.min.js"></script>
<von-app></von-app>

SCSS

/* Your Style */
.page-content p {
  padding: 50px 0 10px 0;
  text-align: center;
  font-size: 18px;
}

.page-content a {
  text-align: center;
  display: block;
}

Babel + JSX

const Login = {
  components: {
    'von-input': Vonic.VonInput,
    'md-button': Vonic.MdButton
  },
	
  template: `
    <div class="page has-navbar" v-nav="{title: '登录', showBackButton: false}">
      <div class="page-content">

      <von-input type="text" :value.sync="username" placeholder="用户名 admin"></von-input>
        <von-input type="password" :value.sync="password" placeholder="密码 1234"></von-input>

        <div class="padding">
          <md-button class="button button-assertive button-block btn-login"
                     @click="login(username, password)">
                     登 录
          </md-button>

          <md-button class="button button-stable button-block btn-login"
                     @click="reset()">
                     重 置
          </md-button>
        </div>
      </div>
    </div>
  `,

  data() {
    return {
      username: '',
      password: ''
    }
  },

  methods: {
    login(username, password) {
      if (!username || !password) {
        $loading.toast('用户名或密码不能为空')
        return
      }

      if (username == 'admin' && password == '1234') {
        $loading.show('正在跳转..')
        setTimeout(() => {
        	$loading.hide()
          $router.forward({ path: '/home' })
        }, 2000)
      } else {
        $loading.toast('用户名或密码错误')
      }
    },

    reset() {
      this.username = ''
      this.password = ''
    }
  }
}

const Home = {
  template: `
    <div class="page has-navbar" v-nav="{title: '首页', showBackButton: false}">
      <div class="page-content">
        <p>登录成功</p>

        <div class="padding text-center">
          <button class="button button-assertive" @click="logout()">退出</button>
        </div>
      </div>
    </div>
  `,
  methods: {
    logout() {
      $confirm.show({
        title: '提示',
        content: '确定要退出吗?',
        okText: '确定',
        cancelText: '取消',
        okTheme: 'assertive'
      }).then((res) => {
        if (res) {
          $router.back({ path: '/' })
        }
      })
...