vue init webpack <project-name>
npm install
npm run dev
地址栏输入localhost:8080
npm install --save vue element-ui
npm install --save vue-router
npminstall --save axios
npm install sass-loader -Dnpm install node-sass -D
项目目录
main.js里面引入vue element 和router:
import ElementUI from 'element-ui'import 'element-ui/lib/theme-chalk/index.css';import VueRouter from 'vue-router'Vue.use(ElementUI) Vue.use(VueRouter)
新建登录vue文件:Ulogin.vue
<template> <el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-container"> <h3 class="title">系统登录</h3> <el-form-item prop="account"> <el-input type="text" v-model="ruleForm2.account" auto-complete="off" placeholder="账号"></el-input> </el-form-item> <el-form-item prop="checkPass"> <el-input type="password" v-model="ruleForm2.checkPass" auto-complete="off" placeholder="密码"></el-input> </el-form-item> <el-form-item style="width:100%;"> <el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" >登录 </el-button> </el-form-item> </el-form></template><script> export default { name: "Ulogin.vue", data() { var checkAccount = (rule, value, callback) => { if (!value) { return callback(new Error('请输入账号')); } else if (value.length < 4 || value.length>12) { return callback(new Error('账号名必须在4~12位')); } else { callback(); } }; var checkPass = (rule, value, callback) => { if (value === '') { return callback(new Error('请输入密码')); } else if (value.length < 2) { return callback(new Error('密码不能小于两位')); } else { return callback(); } }; return { ruleForm2: { account: '', checkPass: '' }, rules2: { account: [ {validator: checkAccount, trigger: 'blur'}, ], checkPass: [ {validator: checkPass, trigger: 'blur'}, ] } }; }, methods: { handleSubmit2(ruleForm2) { this.$refs.ruleForm2.validate((valid) => { if (valid) { alert('提交!') } else { alert('登陆失败!'); console.log('error submit!!'); return false; } }); } } }</script><style lang="scss" scoped> .login-container { /*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/ -webkit-border-radius: 5px; border-radius: 5px; -moz-border-radius: 5px; background-clip: padding-box; margin: 180px auto; width: 350px; padding: 35px 35px 15px 35px; background: #fff; border: 1px solid #eaeaea; box-shadow: 0 0 25px #cac6c6; .title { margin: 0px auto 40px auto; text-align: center; color: #505458; } .remember { margin: 0px 0px 35px 0px; } }</style>
router内index.js文件配置路由:
import Ulogin from '../components/Ulogin'Vue.use(Router) export default new Router({ routes: [ // { // path: '/', // name: 'HelloWorld', // component: HelloWorld // }, { path:'/', name:'', component:Ulogin } ] })
App.vue
d477f9ce7bf77f53fbcf36bec1b69b7a 2fb1ec095997abb5abb99340125c8b3b 99ae171a883fff6fa2f384572360bc0a 94b3e26ee717c64999d7867364b1b4a321c97d3a051048b8e55e3c8f199a54b23f1c4e4b6b16bbbd69b2ee476dc4f83a export default { name: 'App' }2cacc6d41bbb37262a98f745aa00fbf0c9ccee2e6ea535a969eb3f532ad9fe89 #app { font-family: 'Avenir', Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; color: #2c3e50; margin-top: 60px; }531ac245ce3e4fe3d50054a55f265927
目录结构:
运行:npm run dev
相关推荐:
以上是vue.js、element-ui、vuex环境搭建实例分享的详细内容。更多信息请关注PHP中文网其他相关文章!