Vue.js的初步使用

领导布置了一个新任务,这次尝试着前端使用bootstrap+vue.js后端用thinkphp5进行开发。
页面的样式布局直接使用的模板之家下载的bootstrap模板,因为没啥美感,还是直接下载使用来的快。
接下来是正式部分vue的使用:
在html头文件部分在线引入vue.js <script src="https://unpkg.com/vue/dist/vue.js"></script>或者将vue.js下载后本地引入[vue开发版](http://vuejs.org/js/vue.js) [vue最小版](http://vuejs.org/js/vue.min.js)

直接下载并用 script 标签引入,Vue 会被注册为一个全局变量。重要提示:在开发时请用开发版本,遇到常见错误它会给出友好的警告。
开发环境不要用最小压缩版,不然就失去了错误提示和警告!

然后在创建一个vue应用登陆页面 HTML 代码如下:
<div class="app-cam" id="lgapp">
      <form>
          <input hidden v-model="rmpwd" id="rmpwd">
          <input type="text" v-model="user.account" class="text" placeholder="请输入用户名">
          <input type="password" v-model="user.pwd" placeholder="请输入密码">
          <div class="switch" data-on="success" data-off="warning" style="float: right;margin-bottom: 1em">
              <span>记住密码</span>
              <input type="checkbox" name="my-checkbox" data-on-color="success" data-off-color="warning" v-bind:checked="rmpwd|getstatus"/>
          </div>
          <div class="submit"><input v-on:click="login" type="button"  value="登陆"></div>
        <ul class="new">
            <li class="new_left"><p><a href="#" v-on:click="fprgotpwd">忘记密码?</a></p></li>
            <li class="new_right"><p class="sign">新用户?<a href="#" v-on:click="regit">注册</a></p></li>
            <div class="clearfix"></div>
        </ul>
    </form>
  </div>
js代码
new Vue({
    el:'#lgapp',
    data:{
        user:{
            account:getCookie("cache_account"),
            pwd:getCookie("cache_pwd"),
        },
        rmpwd:getCookie("cache_pwd_checked"),
    },
    methods:{
        login:function () {
            var user=this.user,rd_remember=this.rmpwd;
            $.ajax({
                url:loginURL,
                type: 'post',
                dataType:'json',
                data: {
                    'user': user,
                },
                success: function(result){
                    if(result.status==1){
                        setCookie("cache_account",user.account,30);//记住账号

                        //记住密码
                        if(rd_remember=='true'){
                            setCookie("cache_pwd",user.pwd,30);
                            setCookie("cache_pwd_checked",true,30);//勾选状态
                        }
                        else{
                            setCookie("cache_pwd","",30);
                            setCookie("cache_pwd_checked",false,30);//勾选状态
                        }
                        window.location.href=result.url;
                    }
                    else {
                        $.alert({
                            title: '课程签到系统',
                            type: 'red',
                            content: result.msg,
                        });
                    }
                }
            })
        },
        fprgotpwd:function(){
            $.alert({
                title: '课程签到系统',
                type: 'red',
                content: '请联系管理员重置密码!',
            });
        },
        regit:function(){
            $.alert({
                title: '课程签到系统',
                type: 'red',
                content: '请向管理员申请账号!',
            });
        }
    },
    filters:{
        getstatus:function (rmp) {
            if(rmp=='true'){
                return true;
            }
            else{
                return false;
            }
        },
    }
    })

filter过滤器 getstatus用于判断当前密码记住状态 rmpwd为cookie中获取记录

function getCookie(name)
{
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]);
    else
        return null;
}

setCookie为设置cookie

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date()
    exdate.setDate(exdate.getDate()+expiredays)
    document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

delCookie删除cookie

function delCookie(name)
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null)
        document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

需要注意的是

<input hidden v-model="rmpwd" id="rmpwd">

rmpwd为hidden属性,所以要实时响应其值得改变时需要

$("#rmpwd").val(state).show().focus().blur().hide();

改变其值->显示->获取焦点->失去焦点->再隐藏

Logo

前往低代码交流专区

更多推荐