1.創建一個工程
vue init webpack hello-vue
2.安裝依賴
#進入工程目錄 cd hello-vue #安裝 vue-router npm install vue-router --save-dev #安裝 element-ui npm i element-ui -s #安裝依賴 npm install #安裝SASS 加載器 cnpm install sass-loader node-sass --save-dev #啟動測試 npm run dev
3.Npm 命令解釋
nmp install moduleName:安裝模塊到項目目錄下
npm install -g moduleName:-g 代表模塊安裝到全局,具體安裝位置要看npm config prefix的位置
npm install -save moduleName:--save 代表將模塊安裝到項目目錄下,並在package文件的dependencies節點寫入依賴,-s 為該命令的縮寫
npm install -save-dev moduleName:-save-dev 代表將該模塊安裝到項目目錄下,並在package文件的devDependencies節點寫入依賴,-d 為該命令縮寫
4.創建 views文件夾並創建 Login.vue和Main.vue兩個組件
<template> <div> <el-form ref="loginForm" :model="form" :rules="rules" label-width="80px" class="login-box"> <h3 class="login-title">歡迎登錄</h3> <el-form-item label="賬號" prop="username"> <el-input type="text" placeholder="請輸入賬號" v-model="form.username"/> </el-form-item> <el-form-item label="密碼" prop="password"> <el-input type="password" placeholder="請輸入密碼" v-model="form.password"/> </el-form-item> <el-form-item> <el-button type="primary" v-on:click="onSubmit('loginForm')">登錄</el-button> </el-form-item> </el-form> <el-dialog title="溫馨提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose"> <span>請輸入賬號和密碼</span> <span slot="footer" class="dialog-footer"> <el-button type="primary" @click="dialogVisible = false">確 定</el-button> </span> </el-dialog> </div> </template> <script> export default { name: "Login", data() { return { form: { username: '', password: '' }, // 表單驗證,需要在 el-form-item 元素中增加 prop 屬性 rules: { username: [ {required: true, message: '賬號不可為空', trigger: 'blur'} ], password: [ {required: true, message: '密碼不可為空', trigger: 'blur'} ] }, // 對話框顯示和隱藏 dialogVisible: false } }, methods: { onSubmit(formName) { // 為表單綁定驗證功能 this.$refs[formName].validate((valid) => { if (valid) { // 使用 vue-router 路由到指定頁面,該方式稱之為編程式導航 this.$router.push("/main"); } else { this.dialogVisible = true; return false; } }); } } } </script> <style lang="scss" scoped> .login-box { border: 1px solid #DCDFE6; width: 350px; margin: 180px auto; padding: 35px 35px 15px 35px; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; box-shadow: 0 0 25px #909399; } .login-title { text-align: center; margin: 0 auto 40px auto; color: #303133; } </style>
<template> <h1>首頁</h1> </template> <script> export default { name: "Main" } </script> <style scoped> </style>
5.創建router文件夾並創建index.js路由配置
/** * 配置路由 */ import Vue from 'vue' import Router from 'vue-router' import Main from '../views/Main' import Login from '../views/Login'
//安裝路由 Vue.use(Router); //輸出 export default new Router({ routes:[ { path:'/login', component:Login },{ path:'/mian', component:Main } ] });
6.在main.js中引用路由和element-ui
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(router); Vue.use(ElementUI); /* eslint-disable no-new */ new Vue({ el: '#app', router, render:h=>h(App) //ElementUI })
7.修改App.vue
<template> <div id="app"> <router-view></router-view> </div> </template> <script> export default { name: 'App' } </script>
注意在運行時候會有錯誤,原因:
1.package.json 中將 sass-loader 的版本降成 7.3.1
"sass-loader": "^7.3.1",
2.node-sass的版本過高
Error:Node Sass version 5.0.0 is incompatible with ^4.x 問題解決
此錯誤來自sass-loader.因為node-sass@latest為v5.0.0,而sass-loader期望值為^4.0.0
目前解決方案如下:
//卸載 node-sass npm uninstall node-sass //然后安裝最新版本(5.0之前) npm install node-sass@4.14.1