五 Vue学习 首页学习 (上)

首页:   http://localhost:8002/#/,  登录页面如下:

index.js文件中如下的路由配置,转过去看login.vue是如何实现的。

const routes = [
{
path: '/',
component: login
},

这里一个问题: login.vue是如何与index.xml整到一起的呢:
   login作为路由在Router中定义,而在App.vue中Router是参数,这样login就是App.vue的路由了;  App.vue和index.html已经绑定了,并且在App.vue的模板中又又有<Router-View>标签,
所以就可以在index.html中看到login的内容了。)
login.vue代码如下:
 
 <section>: HTML5中的新标签,定义了文档的某个区域。比如章节、头部、底部或者文档的其他区域。
   v-show="true/false: VUE元素的隐藏和显示;
   el-form:  element的表单
   rules: element-UI组件定义的规则,对规则进行校验,如果不满足,会有相应的提示信息等,其规则定义在下面:      
                     rules: {username: [{ required: true, message: '请输入用户名', trigger: 'blur' },   // 定义了username必填,提示的信息,以及触发条件], password: [ { required: true, message: '请输入密码', trigger: 'blur' } ], },
     ref:  表示是el-form的别名,或者叫引用,供其他地方使用:
   如下的代码,在提交表单的时候,用的就是ref指定的名字。
             <el-form-item><el-button type="primary" @click="submitForm('loginForm')" class="submit_btn">登陆</el-button></el-form-item>
    el-form-item:pro:  控件的名字。
placeholder: input用户名控件中当不输入信息时的提示文本。
v-if: 指令是条件渲染指令,它根据表达式的真假来删除和插入.
v-for: v-for指令基于一个数组渲染一个列表;
v-bind: 和某个值绑定
v-on : v-on指令用于给监听DOM事件;
    @click=:  v-on:click的缩写
        <!-- 完整语法 -->
          <a v-on:click="doSomething">...</a>
        <!-- 缩写 -->
          <a @click="doSomething">...</a>
<template><div class="login_page fillcontain"><!--<transition name="form-fade" mode="in-out">--><section class="form_contianer" v-show="showLogin"><div class="manage_tip"><p>档案管理系统</p></div><el-form :model="loginForm" :rules="rules" ref="loginForm"><el-form-item prop="username"><el-input v-model="loginForm.username" placeholder="用户名"><span>dsfsf</span></el-input></el-form-item><el-form-item prop="password"><el-input type="password" placeholder="密码" v-model="loginForm.password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm('loginForm')" class="submit_btn">登陆</el-button></el-form-item></el-form><!--<p class="tip">温馨提示:</p>--><!--<p class="tip">未登录过的新用户,自动注册</p>--><!--<p class="tip">注册过的用户可凭账号密码登录</p>--></section><!--</transition>--></div>
</template><script>import {login, getAdminInfo} from '@/api/getData'import {mapActions, mapState} from 'vuex'export default {data(){return {loginForm: {username: '',password: '',},rules: {username: [{ required: true, message: '请输入用户名', trigger: 'blur' },],password: [{ required: true, message: '请输入密码', trigger: 'blur' }],},showLogin: false,}},mounted(){this.showLogin = true;if (!this.adminInfo.id) {this.getAdminData()}},computed: {...mapState(['adminInfo']),},methods: {...mapActions(['getAdminData']),async submitForm(formName) {this.$refs[formName].validate(async (valid) => {if (valid) {const res = await login({user_name: this.loginForm.username, password: this.loginForm.password})if (res.status == 1) {this.$message({type: 'success',message: '登录成功'});this.$router.push('manage')}else{this.$message({type: 'error',message: res.message});}} else {this.$notify.error({title: '错误',message: '请输入正确的用户名密码',offset: 100});return false;}});},}// watch: {//     adminInfo: function (newValue){//         if (newValue.id) {//             this.$message({//                type: 'success',//                message: '检测到您之前登录过,将自动登录'//            });//             this.$router.push('manage')//         }//     }// }
    }
</script><style lang="less" scoped>@import '../style/mixin';.login_page{background-color: #324057;}.manage_tip{position: absolute;width: 100%;top: -100px;left: 0;p{font-size: 34px;color: #fff;}}.form_contianer{.wh(320px, 210px);.ctp(320px, 210px);padding: 25px;border-radius: 5px;text-align: center;background-color: #fff;.submit_btn{width: 100%;font-size: 16px;}}.tip{font-size: 12px;color: red;}.form-fade-enter-active, .form-fade-leave-active {transition: all 1s;}.form-fade-enter, .form-fade-leave-active {transform: translate3d(0, -50px, 0);opacity: 0;}
</style>

 export default {}  :  ES6的语法,表示导出。es6中,实现了模块功能,你要import 引入东西,导出了才能引用。因为这个login会被其他的组件使用(App.vue),所以一定要导出的。

   return data():    注意, 上面的data()是个函数(有return),而不是对象,每次调用都会返回其中数据的拷贝。这个很重要,因为login模块被很多地方用到,如果返回data对象的

                                       话(不用return),多个地方方公用相同的数据,这是错误的; 而如果data() 是一个函数,return的是全新的对象,这样就不会共享数据了。

                                      data 是数据,主要是这些数据和template中的元素绑定。

  mounted VS created:

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
computed:计算属性,是 Vue 中常用的一个功能
模板内的表达式是非常便利的,但是它们实际上只用于简单的运算。在模板中放入太多的逻辑会让模板过重且难以维护。
computed相当于属性的一个实时计算,如果实时计算里关联了对象,那么当对象的某个值改变的时候,同事会出发实时计算

转载于:https://www.cnblogs.com/liufei1983/p/8727543.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下mqm添加用户,Linux 下MQ的安装和配置亲测

开篇之前奉上几条黄金链接&#xff1a;MQ参考文档http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0m0/index.jsp?topic%2Fcom.ibm.mq.doc%2Fhelp_home_wmq.htmhttp://www-01.ibm.com/support/docview.wss?uidswg27006467MQ下载地址&#xff1a;http://www-03.ibm.com/so…

Java核心面试问题

问&#xff1a;如果main方法被声明为私有该怎么办&#xff1f; 回答&#xff1a; 该程序可以正确编译&#xff0c;但在运行时会显示“ Main方法不公开”。 信息。 问&#xff1a;在Java中按引用传递和按值传递是什么意思&#xff1f; 回答&#xff1a; 通过引用方式传递&…

android 判断是否是标点符号_Java 中文字符判断 中文标点符号判断

Java Character 实现Unicode字符集介绍 CJK中文字符和中文标点判断主要内容&#xff1a;1. Java Character类介绍&#xff1b;2. Unicode 简介及 UnicodeBlock 与 UnicodeScript区别和联系3. 如何判断汉字及中文标点符号做中文信息处理&#xff0c;经常会遇到如何判断一个字是…

小程序tabbar这套方案全搞定!

关于微信小程序的tarbar&#xff0c;相信你们都不会陌生 在实现小程序微信原装的tabbar却比较呆板&#xff0c;不够精致&#xff0c;往往不符合自己的要求 这个时候怎么办呢 这套方案接着&#xff01; 先简单的来说一下主要思想:自定义字体图标组件以及tabbar组件&#xff0c…

linux服务器用哪个面板好,Linux服务器管理面板哪家比较好用?

Linux服务器管理面板哪家比较好用&#xff1f;发布时间&#xff1a;2020-07-21 06:08:33来源&#xff1a;51CTO阅读&#xff1a;261作者&#xff1a;BirdCloud_1022现在&#xff0c;越来越多的站长朋友都会选择服务器用来搭建网站&#xff0c;但是势必需要我们自己搭建WEB环境&…

spring boot(一)入门

目录 spring boot(一)入门一、简介1、微服务的概念2、什么是spring boot3、快速入门4.springboot的快捷部署spring boot(一)入门 一、简介 1、微服务的概念 说起spring boot&#xff0c;我们不得不说一下“微服务”一词的兴起&#xff0c;微服务一词最早起源于2014年&#xff0…

使用Couchbase分页

如果对Couchbase集群进行查询时必须处理大量文档&#xff0c;则使用分页来逐页获取行很重要。 您可以在“ 分页 ”一章的文档中找到一些信息&#xff0c;但是我想在本文中提供更多详细信息和示例代码。 在此示例中&#xff0c;我将基于啤酒样本数据集创建一个简单的视图&#…

android 常用机型尺寸_不同手机/设备和操作系统版本上的Android堆大小

素胚勾勒不出你不仅手机生产商&#xff0c;而且任何创建Android操作系统版本的人&#xff0c;都可以根据设备的特定需求&#xff0c;指定允许的最大堆大小。一些Android根&#xff0c;如CyanogenMod&#xff0c;甚至允许用户自己选择堆大小作为设置。可以使用该方法检测允许的最…

vue移动端项目缓存问题实践

最近在做一个vue移动端项目&#xff0c;被缓存问题搞得头都大了&#xff0c;积累了一些经验&#xff0c;特此记录总结下&#xff0c;权当是最近项目问题的一个回顾吧&#xff01; 先描述下问题场景&#xff1a;A页面->B页面->C页面。假设A页面是列表页面&#xff0c;B页…

pdf解析与结构化提取

PDF解析与结构化提取 PDF解析 对于PDF文档&#xff0c;我们选择用PDFMiner对其进行解析&#xff0c;得到文本。 PDFMiner PDFMiner使用了一种称作lazy parsing的策略&#xff0c;只在需要的时候才去解析&#xff0c;以减少时间和内存的使用。要解析PDF至少需要两个类&#xff1…

Linux usb bus日志如何打开,从linux usb bus节点来认识usb linux usb认识

首先从linux dmesg来认识usb:<6>[ 19.610046] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Controller using HSIC<6>[ 19.620391] msm_hsic_host msm_hsic_host: new USB bus registered, assigned bus number 1<6>[ 19.659942] msm_hsic_host …

Spring面试问题

还可以查看我们最新的文章69Spring面试问答-最终名单 。 1&#xff09;什么是春天&#xff1f; 回答&#xff1a; Spring是控件和面向方面的容器框架的轻量级转换。 2&#xff09;解释春天&#xff1f; 回答&#xff1a; 轻巧&#xff1a;在尺寸和透明度方面&#xff0c; S…

java 字符串转utc时间_JAVA 本地时间字符串转UTC时间字符串

本来想偷懒百度一个时间字符串转UTC的代码&#xff0c;但发现没有一个能用&#xff0c;写得还复杂得要死&#xff0c;没办法还是自己撸一个。/*** UTC时间字符串转本地时间字符串* 我的本地getDateTimeInstance()是格式&#xff1a;yyyy-MM-dd HH:mm:ss* param str UTC时间字符…

前端解读面向切面编程(AOP)

前言 面向对象(OOP)作为经典的设计范式&#xff0c;对于我们来说可谓无人不知&#xff0c;还记得我们入行起始时那句经典的总结吗-万事万物皆对象。 是的&#xff0c;基于OOP思想封装、继承、多态的特点&#xff0c;我们会自然而然的遵循模块化、组件化的思维来设计开发应用&a…

windows和linux允许分片,请问hadoop的hdfs文件系统和本地windows文件系统或linux文件系统是什么关系啊,谢谢...

虚拟文件系统 Virtual File Systems(VFS)Linux 是近年来发展起来的一种新型的操作系统&#xff0c;其最重要的特征之一就是支持多种文件系统&#xff0c;使其更加灵活&#xff0c;从而与许多其它的操作系统共存。Linux支持ext&#xff0c;ext2&#xff0c;xia&#xff0c;minix…

201771010120 苏浪浪 《面向对象程序设计(java)》第二周学习总结

理论知识总结 第三章Java基本程序设计结构 1、基本知识&#xff1a;&#xff08;1&#xff09;标识符&#xff1a;是由字母、下划线、美元符号和数字组成&#xff0c;且第一个符号不能为数字。&#xff08;2&#xff09;关键字&#xff1a;剧啊语言中被赋予特定意义的一些单词。…

Apache Camel简介

Apache Camel是著名的企业集成模式的开源实现。 Camel是一个路由和中介引擎&#xff0c;可以帮助开发人员以各种领域特定语言&#xff08;DSL&#xff09;&#xff08;例如Java&#xff0c;Spring / XML&#xff0c;scala等&#xff09;创建路由和中介规则。 骆驼用途广泛 Cam…

《架构即未来》读后感

前言 有将近2年没有写文章了&#xff0c;首先是不知道分享什么&#xff0c;其次就是工作也比较忙&#xff0c;闲暇的时间要么玩游戏、听小说、看电影&#xff0c;虽然也有看书但其实也并不多&#xff0c;以上也都是为了我的懒惰所找的一些借口。 虽然到现在为止也看了百来本书&…

qt结构体嵌套结构体方法_9.2 C++结构体类型变量

C定义结构体类型变量的方法 1、先声明结构体类型再定义变量名&#xff0c;在定义了结构体变量后&#xff0c;系统会为之分配内存单元。struct Student{ //自定义结构体变量int num;//学号char sex;//性别int age;//年龄};2、在声明类型的同时定义变量 一般形式为struct 结构体名…

Vue解析--如何应对面试官提问

近期不断面试中&#xff0c;面试官都会提一些关于Vue相关的源码和“全家桶”之类的问题。那么针对这些提问&#xff0c;我们应该如何更好应答呢&#xff1f;在这里我把对Vue的理解整理出来供大家来参考。 1.Vue是什么&#xff1f; Vue是一套构建用户界面的渐进式框架&#xf…