vue(vue-cli脚手架)单页面工程, 配置添加其它html

Webpack配置与Vue登录页实现

仿照index.html 注入main.js的方法

具体原理, 可以去网上查下, 说的都很详细, 没有什么问题

 

  • webpack.base.conf.js 中添加新页面的注入入口(这里以login为例) 

配置好入口名称, 与对应的js文件.

  • webpack.dev.conf.js 中添加新页面配置

 

build时, 对应webpack.prod.conf.js也作相应修改

 

 

  • 添加文件login.js, login.html目标(我在login.js里使用了login.vue), 根据上面的配置路径.

 

  • 基本工作就完成了, 下面就是写代码了. 

下面贴上我的代码, 供参考(学习阶段使用, 勿笑 :)

Login.vue放在了src/components/目录下, 内容如下

<template>
    <div id="login">
        <el-container style="height: 90vh;min-height:90vh;" direction="vertical">
            <el-container direction="vertical">
                <el-row type="flex" align="middle" style="height:90vh;">
                    <el-col :span="24">
                        <div style="height: 400px;width: 100%;" class="login-bg">
                            <div class="login-form">
                                <div class="login-header">
                                    <img class="header-img" src="/static/login-header.png"/>
                                </div>
                                <el-form :rules="formValid" :model="formData" ref="formData">

                                    <!-- 帐户 -->
                                    <el-form-item prop="username">
                                        <el-input type="text" class="login-input" v-model="formData.username" auto-complete="off">
                                            <i slot="prefix" class="el-input__icon iconfont icon-zhanghu"></i>
                                        </el-input>
                                    </el-form-item>

                                    <!-- 密码 -->
                                    <el-form-item prop="password">
                                        <el-input type="password" class="login-input" v-model="formData.password" auto-complete="off">
                                            <i slot="prefix" class="el-input__icon el-icon-view"></i>
                                        </el-input>
                                    </el-form-item>

                                    <!-- 提交 -->
                                    <el-form-item>
                                        <el-button @click.native.prevent="submit" class="commit" type="primary" icon="el-icon-upload" round>Login</el-button>
                                    </el-form-item>
                                </el-form>
                            </div>
                        </div>
                    </el-col>
                </el-row>
            </el-container>
            <el-footer height="10vh"></el-footer>
        </el-container>
    </div>
</template>

<script>
    import API from "@/common/common.js";

    export default {
        name: "Login",
        data() {
            return {
                formValid: {
                    username: [
                        {required: true, message: '请输入账号', trigger: 'blur'}
                    ],
                    password: [
                        {required: true, message: '请输入密码', trigger: 'blur'}
                    ]
                },
                formData: {
                    username: "",
                    password: "",
                    "remember-me": true
                }
            }
        },
        methods: {
            submit: function () {
                this.$refs.formData.validate((valid) => {
                    if (valid) {
                        //登陆请求
                        API.ajax('/user/login.do', {
                            data: this.formData,
                            method: 'post'
                            // success: (resp) => {
                            //     this.$store.commit("user", resp);
                            //     //跳转
                            //     this.$router.push({path: '/home'});
                            // }
                        });
                    }
                });
            }
        }
    };
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
    #login {
        font-family: 'Avenir', Helvetica, Arial, sans-serif;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        text-align: center;
        color: #2c3e50;
    }

    body {
        margin: 0px;
        background-color: #E9EEF3;
    }

    .login-bg {
        background: url(/static/login-bg.png) no-repeat;
    }

    .login-form {
        background-color: white;
        border-radius: 2%;
        border: 2px solid rgba(200, 200, 200, 0.5);
        height: 360px;
        width: 250px;
        position: relative;
        top: 20px;
        margin-right: 250px;
        float: right;
        opacity: 0.6;
    }

    .login-header {
        padding: 15px 0 15px 0;
        height: 100px;
    }

    .login-header .header-img {
        width: 100px;
        height: 100px;
        border-radius: 50%;
    }

    .login-form .login-input {
        width: 80%;
    }

    .login-form .commit {
        width: 80%;
    }
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值