热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vue03模板语法(下)

目录一、事件处理器1.事件修饰符2.发送一次3.按键修饰符二、自定义组件1组件简介2全局和局部组件3props三、组件通信自定义事件1.子传父2.组件总结定义

目录

一、事件处理器

1.事件修饰符

 2.发送一次

3.按键修饰符 

 二、自定义组件

  1 组件简介

  2 全局和局部组件

  3 props

三、 组件通信

  自定义事件

1.子传父 

2.组件总结

定义:template

父传子:props

子传父:通过$emit注册事件名

this.$emit('事件名',....)    这里一般是json对象 

四、 表单综合案例

 五、总结

1.事件处理器

2.简单组件

3.父传子

4.子传父

5.综合案例表单 




一、事件处理器


事件监听可以使用v-on 指令  

1.事件修饰符

 Vue通过由点(.)表示的指令后缀来调用修饰符,

  .stop

  .prevent

  .capture

  .self

  .once

  

  

  

  

  

  

  

  

  

  

...

  

  

...

  

  

  注1:什么是事件冒泡?

也就是可以这样理解为:当我点击div就会弹出div,传播到body,在到document

解决方法:阻止冒泡

 

  


{{msg}}


 就不会传播了



 2.发送一次


为了防止有些人,一直点击发送按钮,有可能是因为它的网络慢,或者其他,它就一直在哪里点,每点击一次就会像后台发送一次请求

演示:

 解决方法:

 

  


发送一次



运行结果:



3.按键修饰符 


 Vue允许为v-on在监听键盘事件时添加按键修饰符:

  

  

  Vue为最常用的按键提供了别名

  

  

enter = 13  它们两是同一个意思   回车键

  全部的按键别名:

  .enter

  .tab

  .delete (捕获 "删除" 和 "退格" 键)

  .esc

  .space

  .up

  .down

  .left

  .right

  .ctrl

  .alt

  .shift

  .meta  



按键修饰符



运行结果如图所示: 


 二、自定义组件


如果是前端框架,这个自定义组件是要深入的去了解

 vue组件

  1 组件简介

      组件(Component)是Vue最强大的功能之一

      组件可以扩展HTML元素,封装可重用的代码

      组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树

  2 全局和局部组件

      全局组件:Vue.component(tagName, options),tagName为组件名,options为配置选项。

      局部组件: new Vue({el:'#d1',components:{...}})

      注册后,我们可以使用以下方式来调用组件:

      

  3 props

      props是父组件用来传递数据的一个自定义属性。

      父组件的数据需要通过props把数据传给子组件,子组件需要显式地用props选项声明 "prop"

   注1:因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods

        以及生命周期钩子等。仅有的例外是像el这样根实例特有的选项。

   注2:当我们定义这个 组件时,你可能会发现它的data并不是像这样直接提供一个对象

        data: {

          count: 0

        }

        取而代之的是,一个组件的data选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

        data: function () {

          return {

            count: 0

          }

        }

  

    注3:定义组件名的方式有两种

         短横线分隔命名(建议使用)

         Vue.component('my-component-name', { /* ... */ }),引用方式:

         首字母大写命名

         Vue.component('MyComponentName', { /* ... */ }),引用方式: 都是可接受的   

    注4:HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,

         camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:

         props: ['postTitle'],

    注5:props: ['title', 'likes', 'isPublished', 'commentIds', 'author']

         希望每个 prop 都有指定的值类型

         props: {

           title: String,

           likes: Number,

           isPublished: Boolean,

           commentIds: Array,

           author: Object,

           callback: Function,

           contactsPromise: Promise // or any other constructor



简单组件

父组件 传参 给 子组件



 运行结果如图所示:


三、 组件通信


  自定义事件

   监听事件:$on(eventName)

   触发事件:$emit(eventName)

   注1:Vue自定义事件是为组件间通信设计   

        vue中父组件通过prop传递数据给子组件,而想要将子组件的数据传递给父组件,则可以通过自定义事件的绑定

     

        父Vue实例->Vue实例,通过prop传递数据

        子Vue实例->父Vue实例,通过事件传递数据

   注2:事件名

        不同于组件和prop,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称

        建议使用“短横线分隔命名”,例如:three-click



1.子传父 


子组件 将参数 传递给  父组件 的关键在于下面这两个,要满足下面的两个条件
        1.$emit    2.自定义事件
 

this.$emit('事件名',{})


代码块: 


子传父



 


2.组件总结


定义:template

父传子:props

子传父:通过$emit注册事件名

this.$emit('事件名',....)    这里一般是json对象 



四、 表单综合案例


姓名:
密码:
年龄:
性别:
爱好:
{{l.name}}

英语等级:


 运行结果如图所示:


 五、总结


1.事件处理器

阻止冒泡和只能发送一次还有按键的修饰符等等

阻止冒泡就是为了传播,当点击最外面一层,就不会传播,点击最里面的就会传播到最外面停止,

就好像河里的水,当你去点击水面的时候,它就会从内传播到外,直到停止。

发送一次指的的就是,只能向服务发送一次请求,这样就可以减少服务的压力,为了防止某人手不安分,它没反应就一直在哪里狂点。

按键修饰符指的就是键盘的按键事件,就是不需要鼠标点击,直接用键盘回应,就好比如我们登陆,我们每登陆一个账号都会有一个确定或者注册等等,我们就可以用按键的修饰符来完成,我们就用回车键就可以直接进去登陆,不需要用鼠标移到来点击那个按钮。


2.简单组件

通过component里面有两个参数,一定组件名字,二是模板

Vue.component('定义的组件名称',{

模板:template:[标签]

})


3.父传子

是要通过在模板里面写 props:['','',...] 这里面就是你父标签里面的参数,有多少放多少


4.子传父

子组件 将参数 传递给父组件要满足两个条件,一是$emit ,二是自定义事件

this.$emit('自定义事件',参数)


5.综合案例表单 


推荐阅读
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • vue组件component的注册与使用详解_vue.js
    组件是Vue是一个可以重复使用的Vue实例, 它拥有独一无二的组件名称,它可以扩展HTML元素,以组件名称的方式作为自定义的HTML标签,这篇文章主要介绍了vue组件compone ... [详细]
  • 【Vue基础】监听属性watch
    Vue监听属性是watch,我们可以通过watch来响应数据的变化。代码示例: ... [详细]
  • vue.js如何实现数据的双向绑定呢?与angular不同。vue利用的是es5的defineproperty特性。1.一个小例子 ... [详细]
  • 上次我们总结了React代码构建后的webpack模块组织关系,今天来介绍一下Babel编译JSX生成目标代码的一些规则,并且写一个简单的解析器,模拟整个生成的过程。我们还是拿最简 ... [详细]
  • 一、vue-resource1、引入资源方式1)下载vue-resource.js,添加到项目中2)CDN:http:www ... [详细]
  • 媒介本文的前身是源自github上的项目awesome-github-vue,但由于该项目上次更新时候为2017年6月12日,许多内容早已逾期或是许多近期优异组件未被收录,所以小肆 ... [详细]
  • document .ready中的函数怎么被按钮调用? ... [详细]
  • 认识Vue关于Vue的描述有不少,不外乎都会拿来与Angular和React对比,同样头顶MVVM双向数据驱动设计模式光环的Angular自然被对比的最多,但到目前为止,Angul ... [详细]
  • <!DOCTYPEhtml><htmllang=en><head><metacharset=UT ... [详细]
  • Vue.Js_Vue之vue.js声明式渲染
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Vue之vue.js声明式渲染相关的知识,希望对你有一定的参考价值。ht ... [详细]
  • 这篇文章主要讲解了“GradeBook类怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Grad ... [详细]
  • C#制作TextBox水印提示
    前言在使用C#的TextBox控件时,有时候会有以下需求:在用户没有输入文字时,TextBox有提示文字,如下图所示 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
author-avatar
Smile--麦芽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有