從 node官網下載安裝包css
npm install vue-cli -g
vue init webpack vue-project
可保持默認,一路回車
完成後vue
cd vue-project npm run dev
工程啓動成功,訪問 http://127.0.0.1:8080 可看到頁面
win下使用 tree /f 查看此時src下的文件列表:node
│ App.vue │ main.js │ ├─assets │ logo.png │ ├─components │ HelloWorld.vue │ └─router index.js
npm install element-ui --save
編輯 src/main.js , 修改成webpack
import Vue from 'vue' import App from './App' import router from './router' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) Vue.config.productionTip = false new Vue({ el: '#app', router, render: h => h(App) })
src 目錄下新建目錄 views
編寫 views/TheLogin.vueweb
<template> <div class="login-container"> <el-form :model="ruleForm2" :rules="rules2" status-icon ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-page"> <h3 class="title">系統登陸</h3> <el-form-item prop="username"> <el-input type="text" v-model="ruleForm2.username" auto-complete="off" placeholder="用戶名" ></el-input> </el-form-item> <el-form-item prop="password"> <el-input type="password" v-model="ruleForm2.password" auto-complete="off" placeholder="密碼" ></el-input> </el-form-item> <el-checkbox v-model="checked" class="rememberme" >記住密碼</el-checkbox> <el-form-item style="width:100%;"> <el-button type="primary" style="width:100%;" @click="handleSubmit" :loading="logining">登陸</el-button> </el-form-item> </el-form> </div> </template> <script> export default { data(){ return { logining: false, ruleForm2: { username: 'admin', password: '123456', }, rules2: { username: [{required: true, message: 'please enter your account', trigger: 'blur'}], password: [{required: true, message: 'enter your password', trigger: 'blur'}] }, checked: false } }, methods: { handleSubmit(event){ this.$refs.ruleForm2.validate((valid) => { if(valid){ this.logining = true; if(this.ruleForm2.username === 'admin' && this.ruleForm2.password === '123456'){ this.logining = false; sessionStorage.setItem('user', this.ruleForm2.username); this.$router.push({path: '/'}); }else{ this.logining = false; this.$alert('username or password wrong!', 'info', { confirmButtonText: 'ok' }) } }else{ console.log('error submit!'); return false; } }) } } }; </script> <style scoped> .login-container { width: 100%; height: 100%; } .login-page { -webkit-border-radius: 5px; border-radius: 5px; margin: 180px auto; width: 350px; padding: 35px 35px 15px; background: #fff; border: 1px solid #eaeaea; box-shadow: 0 0 25px #cac6c6; } label.el-checkbox.rememberme { margin: 0px 0px 15px; text-align: left; } </style>
訪問 login 要跳轉到登陸頁面
修改 router/index.js 爲vue-router
import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' import Login from '@/views/TheLogin' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'HelloWorld', component: HelloWorld }, { path: '/login', name: 'Login', component: Login }, ] })
訪問 http://127.0.0.1:8080/#/login 出現登陸頁面:vue-cli