在线演示

http://demo.xiongze.net/

下载地址

https://gitee.com/xiongze/Vue2.git

js引用

<!--这里可以自己下载下来引用,也可以使用外部动态链接引用-->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

基础用法

你可以用 v-model 指令在表单<input>、<textarea> 及<select>素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。

尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。

v-model 会忽略所有表单元素的 valuecheckedselected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。

你应该通过 JavaScript 在组件的 data 选项中声明初始值。

v-model  在内部为不同的输入元素使用不同的 property 并抛出不同的事件:

  • text 和 textarea 元素使用 value property 和 input 事件;
  • checkbox 和 radio 使用 checked property 和 change 事件;
  • select 字段将 value 作为 prop 并将 change 作为事件。

对于需要使用输入法 (如中文、日文、韩文等) 的语言,你会发现 v-model 不会在输入法组合文字过程中得到更新。

如果你也想处理这个过程,请使用 input 事件。

点击事件和提示框

HTML

  1. <div id="example">
  2. <button v-on:click="say('我是按钮,你点击了我')">按钮点击</button>
  3. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. data: {
  5. msg: 'Hello!'
  6. },
  7.   //函数(用于弹框)
  8. methods: {
  9. say: function (i) {
  10. alert(i)
  11. }
  12. },
  13. });

计算机属性和侦听器

1、计算机属性

HTML

  1. <div id="example">
  2. <div>计算属性:{{toUp}}</div>
  3. <inputtype="text" v-model="ipt2">
  4. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. data: {
  5. msg: 'Hello!',
  6. ipt: '我是计算机属性'
  7. },
  8.  
  9. //计算属性
  10. computed: {
  11. toUp: function () {
  12. var that = this;
  13. var temp = that.ipt;
  14. return temp;
  15. }
  16. },
  17. });

这里我们声明了一个计算属性 toUp

你可以像绑定普通 property 一样在模板中绑定计算属性。

2、侦听器

虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。

这就是为什么 Vue 通过 watch  选项提供了一个更通用的方法,来响应数据的变化。

当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

HTML

  1. <div id="example">
  2. <input type="text" v-model="ipt2">
  3. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. data: {
  5. msg: 'Hello!',
  6. ipt2: '我是观察者(侦听器)'
  7. },
  8. //函数(用于弹框)
  9. methods: {
  10. say: function (i) {
  11. alert(i)
  12. }
  13. },
  14.  
  15. //观察者
  16. watch: {
  17. // 如果 `ipt2` 发生改变,这个函数就会运行
  18. ipt2: function (newVal) {
  19. this.say(newVal)
  20. //console.log(this.ipt2);
  21. }
  22. }
  23. });

使用 watch 选项允许我们执行异步操作 (访问一个 API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。

除了 watch 选项之外,您还可以使用命令式的 vm.$watch API

文本

HTML

  1. <div id="example">
  2. <input v-model="message" placeholder="单行文本">输入的值: {{ message }}
  3. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. message :"",
  5. });

多行文本

HTML

  1. <div id="example">
  2. <textarea v-model="message" placeholder="多行文本"></textarea><br />
  3. <span>输入的值:</span>
  4. <p style="white-space: pre-line;">{{ message }}</p>
  5. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. message :"",
  5. });

自定义组件(简单):输出指定内容

在注册一个组件的时候,我们始终需要给它一个名字。比如在全局注册的时候我们已经看到了:

  1. Vue.component('my-component-name', { /* ... */ })

该组件名就是 Vue.component 的第一个参数。

你给予组件的名字可能依赖于你打算拿它来做什么。

当直接在 DOM 中使用一个组件 (而不是在字符串模板或单文件组件) 的时候,

我们强烈推荐遵循 W3C 规范中的自定义组件名 (字母全小写且必须包含一个连字符)。

这会帮助你避免和当前以及未来的 HTML 元素相冲突。

你可以在风格指南中查阅到关于组件名的其它建议。

HTML

  1. <div id="example">
  2. <simple></simple>
  3. </div>

JS

  1. // 注册一个全局自定义组件 simple
  2. Vue.component("simple", Vue.extend({
  3. template: '<div>我是一个div块哦</div>'
  4. }));
  5.  
  6. //一个vue的实例
  7. new Vue({
  8. el: '#example'
  9. });

自定义组件(复杂):输出一个ul无序列表

HTML

  1. <div id="example">
  2. <do-list v-bind:data="list">
  3.  
  4. </do-list>
  5. </div>

JS

  1. // 注册一个复杂全局自定义【组件】 do-list
  2. Vue.component("do-list", Vue.extend({
  3. //(父子传参)子组件要显式地用 props 选项声明它预期的数据:
  4. props: ['data'],
  5. template: `
  6. <ul>
  7. <li v-for="item in data">{{item.name}}</li>
  8. </ul>
  9. `
  10. }));
  11.  
  12. //一个vue的实例
  13. new Vue({
  14. el: '#example',
  15. list: [
  16. { name: '西游记', author: '吴承恩' },
  17. { name: '红楼梦', author: '曹雪芹' },
  18. { name: '水浒传', author: '施耐庵' },
  19. { name: '三国演义', author: '罗贯中' }
  20. ],
  21. });

复选框

HTML

  1. <div id="example">
  2. <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
  3. <label for="jack">Jack</label>
  4. <input type="checkbox" id="john" value="John" v-model="checkedNames">
  5. <label for="john">John</label>
  6. <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
  7. <label for="mike">Mike</label>
  8. <span>选中的值: {{ checkedNames }}</span>
  9. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. checkedNames: [], //多选
  5. });

单选按钮

HTML

  1. <div id="example">
  2. <input type="radio" id="one" value="One" v-model="picked">
  3. <label for="one">One</label>
  4. <input type="radio" id="two" value="Two" v-model="picked">
  5. <label for="two">Two</label>
  6. <span>选中的值: {{ picked }}</span>
  7. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. picked: '', //单选
  5. });

下拉选择框

HTML

  1. <div id="example">
  2. <select v-model="selected">
  3. <option disabled value="">请选择</option>
  4. <option>Vue 1.x</option>
  5. <option>Vue 2.x</option>
  6. <option>Vue 3.x</option>
  7. </select>
  8. <span>选中的值: {{ selected }}</span>
  9. </div>

JS

  1. //一个vue的实例
  2. new Vue({
  3. el: '#example',
  4. selected: '' //单选框
  5. });

如果 v-model 表达式的初始值未能匹配任何选项,<select> 元素将被渲染为“未选中”状态。

在 iOS 中,这会使用户无法选择第一个选项。因为这样的情况下,iOS 不会触发 change 事件。

因此,更推荐像上面这样提供一个值为空的禁用选项。

欢迎关注订阅微信公众号【熊泽有话说】,更多好玩易学知识等你来取

作者:熊泽-学习中的苦与乐
公众号:熊泽有话说


出处:https://www.cnblogs.com/xiongze520/p/14764147.html



创作不易,任何人或团体、机构全部转载或者部分转载、摘录,请在文章明显位置注明作者和原文链接。

初识Vue2(一):表单输入绑定(附Demo)的更多相关文章

  1. 前端MVC Vue2学习总结(五)——表单输入绑定、组件

    一.表单输入绑定 1.1.基础用法 你可以用 v-model 指令在表单控件元素上创建双向数据绑定.它会根据控件类型自动选取正确的方法来更新元素.尽管有些神奇,但 v-model 本质上不过是语法糖, ...

  2. Vue的指令系统、计算属性和表单输入绑定

    指令系统 指令 (Directives) 是带有 v- 前缀的特殊特性.指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论).指令的职责是,当表达式的值改变 ...

  3. Blazor和Vue对比学习(基础1.9):表单输入绑定和验证,VeeValidate和EditFrom

    这是基础部分的最后一章,内容比较简单,算是为基础部分来个HappyEnding.我们分三个部分来学习: 表单输入绑定 Vue的表单验证:VeeValidate Blazor的表单验证:EditForm ...

  4. Vue表单输入绑定(文本框和复选框)

    文本框 <!DOCTYPE html><html>    <head>        <meta charset="utf-8">  ...

  5. Vue.js教程--基础2(事件处理 表单输入绑定

    事件处理 表单输入绑定 事件处理 监听v-on 监听 DOM 事件,并在触发时运行一些 JavaScript 代码. 可以在v-on:click=''加内联语句. 有时也需要在内联语句处理器中访问原始 ...

  6. Vue学习计划基础笔记(五) - 表单输入绑定、组件基础

    表单输入绑定.组件基础 目标: 熟练掌握vue中表单的处理方式 对之前学习的内容简单回顾一下,并写一个实例,学以致用(最好脱离文档) vue中表单的处理方式 vue中表单的处理使用了v-model指令 ...

  7. VUE:事件处理和表单输入绑定

    事件处理 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  8. vue样式绑定、事件监听、表单输入绑定、响应接口

    1.样式绑定 操作元素的 class 列表和内联样式是数据绑定的一个常见需求.因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可.不过,字符串拼接麻烦且易错 ...

  9. Vue(10)表单输入绑定v-model

    v-model v-model指定可以实现表单值与属性的双向绑定.即表单元素中更改了值会自动的更新属性中的值,属性中的值更新了会自动更新表单中的值 绑定的属性和事件 v-model在内部为不同的输入元 ...

随机推荐

  1. css行高

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="U ...

  2. find文本处理(locate)实例学习记录

    find文本处理(locate)实例学习记录 (一)按文件名称查找 按照文件名称查找是 find 最常见的用法,需要注意的是,搜索的文件名必须完全匹配,才能找到对应的文件. 1. 查找当前目录下所有 ...

  3. Java并发编程之基础理论

    内存模型   主内存.工作内存与Java堆.栈.方法区并不是同一个层次的内存划分 勉强对应起来 从定义来看,主内存对应Java堆中对象实例数据部分,工作内存对应虚拟机栈中部分区域 从更低层次来说,主内 ...

  4. 基于Hive进行数仓建设的资源元数据信息统计:Hive篇

    在数据仓库建设中,元数据管理是非常重要的环节之一.根据Kimball的数据仓库理论,可以将元数据分为这三类: 技术元数据,如表的存储结构结构.文件的路径 业务元数据,如血缘关系.业务的归属 过程元数据 ...

  5. 【C/C++】面相对象开发之封装

    封装继承多态是面向对象程序开发的基础概念.是实现面向对象的基本要素. 封装 程序开发,最核心价值,是数据. 程序其实是读取数据,操作数据,保存数据等一系列操作. 那么经过良好组织过的数据,将使编程事半 ...

  6. 1. HTML <fieldset> 标签

    定义和用法 fieldset 元素可将表单内的相关元素分组. <fieldset> 标签将表单内容的一部分打包,生成一组相关表单的字段. 当一组表单元素放到 <fieldset> ...

  7. 认识Git并了解Git的基本知识

    目录 认识Git 版本控制 版本控制的发展史 安装Git Git的核心概念 Git的使用原理 Git的工作流程 Git的基本流程 Git与SVN的区别 Git的基本使用 初始化Git 创建一个Git仓 ...

  8. math random模块

    math --- 数学函数 该模块提供了对C标准定义的数学函数的访问,返回值除非有明确说明,否则所有返回值均为浮点数 math.ceil(x) 返回 x 的上限,即大于或者等于 x 的最小整数. 如果 ...

  9. RandomForestClassifier参数

    [RandomForestClassifier] 参数 n_estimators : 随机森林中树的个数,即学习器的个数. max_features : 划分叶子节点,选择的最大特征数目 n_feat ...

  10. .Net之静态资源

    介绍 静态文件都存储在Core Web根目录中.默认目录是<content_root>/wwwroot,但可通过 UseWebRoot方法更改访问目录.而content_root是指web ...