这是我参与更文挑战的第21天,活动详情查看:更文挑战
全局安装VueCli
npm install -g @vue/cli
初始化项目
vue create tmier-blog
简单运行
cd ./tmier-blog
npm run serve
看到下面这个界面便是运行成功, 项目初始化完成。
安装插件
npm i element-ui axios
Element使用
src/main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 完整引入Element-UI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.config.productionTip = false
// Vue.use
Vue.use(ElementUI);
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
Axios二次封装
在 src
下新建 utils
文件夹, 然后新建 src/utils/request.js
import axios from 'axios'
const request = axios.create({
baseURL: 'http://127.0.0.1:1996/', // 配置基础路径
timeout: 1000 * 15,
headers: {
"Content-type": "application/json;charset=UTF-8",
}
})
// 请求拦截器
request.interceptors.request.use(
request => {
return request
},
error => {
// 如果报错,对错误进行处理
}
)
// 想要拦截器
request.interceptors.response.use(response => {
return response
}, error => {})
export default request
然后在 src
下新建 api
文件夹, 新建 src/api/login.js
import request from '@/utils/request.js'
export function LoginAPI (username, password) {
return request({
url: `/api/user/login`,
data: {
username,
password
}
})
}
删改路由
router/index.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'Home',
redirect: {name: 'login'}
// component: Home
},
{
path: '/login',
name: 'login',
component: () => import('@/views/Login/index.vue')
}
]
const router = new VueRouter({
routes
})
export default router
在 src/views
下新建 Login
文件夹, 并在其下新建 index.vue
<template>
<div class="tmier-login">
<h1>登录</h1>
<el-input class="tmier-login-input" v-model="username"></el-input>
<el-input class="tmier-login-input" v-model="password" type="password"></el-input>
<el-button type="primary" class="tmier-login-input" @click="clickLogin">登录</el-button>
</div>
</template>
<script>
//import x from ''
import {LoginAPI} from '@/api/login.js'
export default {
components: {},
data() {
return {
username: '',
password: ''
}
},
computed: {},
methods: {
async clickLogin() {
await LoginAPI(this.username, this.password)
}
}
}
</script>
<style lang='scss' scoped>
//@import url()
.tmier-login {
width: 100%;
height: 100%;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
.tmier-login-input {
width: 300px;
margin-bottom: 20px;
}
}
</style>
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!