vue 基础
vue-router 路由
vue-cli 脚手架
axios 请求
后台服务在外网 api文档
element-ui
vue create hm-toutiao-79
第一步:选择自定义创建方式
第二步:需要的插件,babel转换ES6 linter使用代码风格检查工具 css预处理器
第四步:选择代码风格 standard 标准风格
第五步:检查代码风格的时机 保存的时候校验 提交的时候也校验
第六步:选择刚才的插件的配置存储位置,单独生成文件来记录
第七步:是否保存操作记录 是: 刚才的操作取个名字 否 不记录 n 回车即可。
开始装包…
结束后:
# 切换目录
cd hm-toutiao-79
# 运行项目
npm run serve
├─api 接口
├─assets 静态文件
│ └─images
├─components 公用组件
├─directive 指令
├─filter 过滤器
├─router 路由
├─store 本地存储
├─utils 公用工具函数模块
└─views 路由组件
└─App.vue 根组件
└─main.js 入口文件
参考即可,目录细分功能,后期好维护。
# --save 保存到生产依赖 -S
# --save-dev 保存到开发依赖 -D
# npm 5.0 版本以上省略 默认安装到生产依赖
npm i element-ui -S
import Vue from 'vue';
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
+Vue.use(ElementUI);
new Vue({
el: '#app',
render: h => h(App)
});
<div id="app">
App <el-button type="success">成功按钮el-button>
div>
"eslint.validate": [
"javascript",
"javascriptreact",
{
"language": "html",
"autoFix": true
},
{
"language": "vue",
"autoFix": true
}
],
"eslint.autoFixOnSave": true,
路径 | 功能 | 路由级别 |
---|---|---|
/login | 登录 | 一级路由 |
/ | 首页 | 一级路由 |
└ / | 欢迎页面 | 二级路由 |
└ /article | 内容管理 | 二级路由 |
└ /image | 素材管理 | 二级路由 |
└ /publish | 发布文章 | 二级路由 |
└ /comment | 评论管理 | 二级路由 |
└ /fans | 粉丝管理 | 二级路由 |
└ /setting | 个人设置 | 二级路由 |
组件:views/login/index.vue
<template>
<div class='container'>Logindiv>
template>
<script>
export default {}
script>
<style scoped lang='less'>style>
路由:router/index.js
const router = new VueRouter({
// 路由规则
routes: [
// name: 'login' 给当前路由取名
// 跳转使用:$router.push('/login') 或者 $router.push({name:'login'})
+ { path: '/login', name: 'login', component: Login }
]
})
定义渲染位置:App.vue
<div id="app">
<router-view>router-view>
div>
<template>
<div class='container'>
<el-card class="my-card">
<img src="../../assets/images/logo_index.png" alt="">
el-card>
div>
template>
<script>
export default {}
script>
<style scoped lang='less'>
.container{
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
background: url(../../assets/images/login_bg.jpg) no-repeat center / cover;
.my-card{
width: 400px;
height: 350px;
position: absolute;
left:50%;
top:50%;
transform: translate(-50%,-50%);
img {
display: block;
width: 200px;
margin: 0 auto;
}
}
}
style>
/* 其他组件的样式 怎么去修改? */
.el-card__body[data-v-xxxxx]{
background: green;
}
分析:
<el-form ref="form" :model="form" label-width="80px">
<el-form-item label="活动名称">
<el-input v-model="form.name">el-input>
el-form-item>
el-form>
最终代码:
<el-card class="my-card">
<img src="../../assets/images/logo_index.png" alt="">
<el-form :model="loginForm">
<el-form-item>
<el-input v-model="loginForm.mobile" placeholder="请输入手机号">el-input>
el-form-item>
<el-form-item>
<el-input v-model="loginForm.code" placeholder="请输入验证码" style="width:236px;margin-right:10px">el-input>
<el-button>发送验证码el-button>
el-form-item>
<el-form-item>
<el-checkbox :value="true">我已阅读并同意用户协议和隐私条款el-checkbox>
el-form-item>
<el-form-item>
<el-button type="primary" style="width:100%">登 录el-button>
el-form-item>
el-form>
el-card>
总结:使用element-ui组件的方式