前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VUE 入门基础(7)

VUE 入门基础(7)

作者头像
用户1197315
发布2018-01-22 11:01:26
1.3K0
发布2018-01-22 11:01:26
举报
文章被收录于专栏:柠檬先生柠檬先生

八,事件处理器

监听事件   可以用v-on 指令监听DOM 事件来触发一些javaScript

代码语言:js
复制
	    <div id="example-1">
		      <button v-on:click="counter += 1">增加1</button>
		      <p>这个按钮被点击了{{ counter }} 次</p>
	    </div>
	    var example1 = new Vue({ 
		      el: "#example-1"
		      data: { 
			        counter: 0
		      }
	    })

方法事件处理器     v-on 可以接收一个定义的方法来调用

代码语言:js
复制
	      <div id="example-2">
		        <butto v-on:click="greet">Greet</button>	
	      </div>
	      var example2 = new Vue({ 
		        el:'#example-2',
		        data: { 
			           name: 'Vue.js'
		        },
		        methods: { 
			          greet: function (event) { 
				            alert('Hello' + this.name + '!')
			            }
		        }
	      })
	      example2.greet()

内联事件处理方法   可以内联JavaScript语句

代码语言:js
复制
	    <div id="example-3">
		      <button v-on:click="say('hi')">Say hi</button>
		      <button v-on:click="say('what')">Say what</button>
	    </div>
	    new Vue({ 
		      el: '#example-3',
		      methods: { 
			        alert(message)
		      }
	    })

    有时候也需要内联语句处理器中访问原生DOM事件 可以用特殊变了$event 把它传入方法:

代码语言:js
复制
		    <button v-on:click="warn('For cannot be submitted ye.',$event)" >Submit</button>
		      methods: { 
			        warn: function(message, event) { 
			                if(event) event.preventDefault()
			                    alert(message)
			          }
		      }

事件修饰符     为v-on 提供了 事件修饰符 通过由(.)表示的的指令后缀来调用修饰符。

代码语言:js
复制
	      .stop 	.prevent      .capture  .self    .once
		      //  防止事件冒泡 
		        <a v-on:click.stop="doThis"></a>
		      // 提交事件不在重载页面
		        <form v-on:submit.prevent="onSubmit"></form>
		      // 修饰符可以串联
		        <a v-on:click.stop.prevent="doThat"></a>
		      // 只有修饰符
		        <form v-on:submit.prevent></form>
		      // 添加事件监听器时使用事件捕获模式
		        <div v-on:click.capture="doTthis"></div>
		      // 只当事件在该元素本身(而不是子元素)触发时触发回调
		        <div v-on:click.self="doThat"></div>

按键修饰符   在监听键盘事件时,vue允许 v-on 在监听键盘事件时添加按键修饰符

代码语言:js
复制
	      // 只有在keyCode 是 13 是调用 vm.submit()
	    <input v-on:keyup.13="submit">
	      // 记住所有的 keyCode 比较困难, 所以Vue 为最常见的按键提供了别名:
	    <input v-on:keyup.enter="submit">
	    <input @keyup.enter="submit">

全部的按键名   .enter .tab .delete .esc .space .up .down .left .right   可以通过全局 config.keyCodes 对象自定义按键修饰符别名:

代码语言:js
复制
	  // 可以使用 v-on:keyup.f1
	  Vue.config.keyCodes.f1 = 112

按键修饰符   可以用如下修饰符开启鼠标或键盘事件监听,使在按键按下时发生响应。

代码语言:js
复制
	  .ctrl	.alt        .shift         .meta
	    <!-- Alt + C -->
	      <input @keyup.alt.67="clear">
	    <!-- Ctrl + Click -->
	      <div @click.ctrl="doSomething">Do something</div>

九,表单控件绑定 基础用法   用v-model 指令在表单控件元素上创建双向数据绑定。

代码语言:js
复制
	    <input v-model="message" placeholder="edit me">
	    <p>Message is:{{ message}}</p>

多行文本

代码语言:js
复制
	    <span>Multiline message is:</span>
	    <p style="white-space: pre">{{ message }}</p>
	    <textarea v-model="message" placeholder="add multtiple lines"> </textarea>

复选框   单个勾选框,逻辑值

代码语言:js
复制
		    <input type="checkbox" id="checkbox" v-model="checked">
		    <label for="checkbox">{{ checked}}</label>

多个勾选框,绑定到同一个数组

代码语言:js
复制
				  <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
		    <label for="jack">Jack</label>
		    <input type="checkbox" id="john" value="john" v-model="checkedNames">
		    <label for="jack">john</label>
		    <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
		    <label for="jack">Mike</label>
		    <span>Checked names: {{checkedNames}}</span>
		    new Vue({ 
			      el:'...',
			      data: { 
				        checkedNames: [ ]
			      }
		    })

单选按钮

代码语言:js
复制
	    <input type="radio" id="one" value="One" v-model="picked">
	    <lable for="one">One</lable>
	    <input type="radio" id="two" value="Two" v-model="picked">
	    <lable for="one">One</lable>
	    <span>Picked: {{ picked }}</span>

选择列表   单选列表:

代码语言:js
复制
		    <select v-model="selected">
			      <option>A</option>
			      <option>B</option>
			      <option>C</option>
		    </select>

  多选列表(绑定到一个数组):

代码语言:js
复制
		    <select v-model="selected" multiple>
  			      <option>A</option>
 			       <option>B</option>
  			      <option>C</option>
		    </select>
		    <br>
		    <span>Selected: {{ selected }}</span>

动态选项,用v-for 渲染

代码语言:js
复制
		    <select v-model="selected">
			      <option v-for="opction in options" v-bind:value="option.value">
				        {{ option.text }}
			      </option>
		    </select>
		    <span>selected: {{ sekected}}</span>
		    new Vue({ 
			      el:'...',
			      data: { 
				          selected: 'A',
				          options: [
					            {text:'One',value: 'A'},
					            {text:'Two',value: 'B'},
					            {text:'Three',value: 'C'}
				          ]
			      }
		    })

绑定 value   对于单选按钮,勾选框及选择列表, v-model 绑定的value 通常是静态字符串。

代码语言:js
复制
		    //  当选中时 picked 为字符串 a
		      <input type="radio" v-model="picked" value="a">
		    // toggle 为 true  或 false
		      <input type="checkbox" v-model="toggle">
		    // 当选中时 selected 为字符串女abc
		      <select v-mode="selected">
			        <option value="abc">ABC</option>
		      </select>

复选框

代码语言:js
复制
		  <input type="checkbox" v-model="toggle" v-bind:true-value="a" v-bind:false-value="a">
		    // 当选中时
		  vm.toggle === vm.a
		  vm.toggle === vm.b

等选按钮

代码语言:js
复制
		    <input type="radio" v-model="pick" v-bind:value="a">
		        //  当选中时
		      vm.pcik === vm.a

选择列表设置

代码语言:js
复制
		    <select v-model="selected">
			      // 内联对象字面量
			      <option v-bind:value="{number: 123}">123</option>
		    </select>
		      // 当选中时
		    typeof vm.selected  // object
		    vm.selected.number //123

修饰符   .lazy      在默认情况下, v-model 在 input 事件中同步输入框的值与数据 (除了 上述 IME 部分),但你可以添加一个修饰符 lazy ,从而转变为在 change 事件中同步:     // 在“change” 而不是在 "input" 时间中更新     <input v-model.lazy="msg">   .number     如果想自动将用户的输入值转为 Number 类型(如果原值的转换结果为 NaN 则返回原值),可以添加一个修饰符 number 给 v-model 来处理输入值:

    <input v-model.number="age" type="number">     因为在 type="number" 时 HTML 中输入的值也总是会返回字符串类型。   .trim     如果要自动过滤用户输入的首尾空格,可以添加 trim 修饰符到 v-model 上过滤输入:     <input v-model.trim=msg>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档