在线演示

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

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

JS

//一个vue的实例
new Vue({
el: '#example',
data: {
msg: 'Hello!'
},
  //函数(用于弹框)
methods: {
say: function (i) {
alert(i)
}
},
});

计算机属性和侦听器

1、计算机属性

HTML

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

JS

//一个vue的实例
new Vue({
el: '#example',
data: {
msg: 'Hello!',
ipt: '我是计算机属性'
}, //计算属性
computed: {
toUp: function () {
var that = this;
var temp = that.ipt;
return temp;
}
},
});

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

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

2、侦听器

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

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

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

HTML

<div id="example">
<input type="text" v-model="ipt2">
</div>

JS

//一个vue的实例
new Vue({
el: '#example',
data: {
msg: 'Hello!',
ipt2: '我是观察者(侦听器)'
},
//函数(用于弹框)
methods: {
say: function (i) {
alert(i)
}
}, //观察者
watch: {
// 如果 `ipt2` 发生改变,这个函数就会运行
ipt2: function (newVal) {
this.say(newVal)
//console.log(this.ipt2);
}
}
});

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

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

文本

HTML

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

JS

//一个vue的实例
new Vue({
el: '#example',
message :"",
});

多行文本

HTML

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

JS

//一个vue的实例
new Vue({
el: '#example',
message :"",
});

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

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

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

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

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

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

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

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

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

HTML

<div id="example">
<simple></simple>
</div>

JS

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

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

HTML

<div id="example">
<do-list v-bind:data="list"> </do-list>
</div>

JS

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

复选框

HTML

<div id="example">
<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="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<label for="mike">Mike</label>
<span>选中的值: {{ checkedNames }}</span>
</div>

JS

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

单选按钮

HTML

<div id="example">
<input type="radio" id="one" value="One" v-model="picked">
<label for="one">One</label>
<input type="radio" id="two" value="Two" v-model="picked">
<label for="two">Two</label>
<span>选中的值: {{ picked }}</span>
</div>

JS

//一个vue的实例
new Vue({
el: '#example',
picked: '', //单选
});

下拉选择框

HTML

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

JS

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

如果 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. Typora常用编辑方法-一个能将写博客变作享受的工具

    1,标题 ctrl+数字(1~5) 2,序号 数字序号 数字 + . +空格,之后回车换行会自动产生数字序号 非数字序号 有三种 实心圆 ,非实心圆与实心方框 都是 +空格 ,之后按tab键向内缩进, ...

  2. ECMAScript 2018(ES9)新特性简介

    目录 简介 异步遍历 Rest/Spread操作符和对象构建 Rest Spread 创建和拷贝对象 Spread和bject.assign() 的区别 正则表达式 promise.finally 模 ...

  3. 翻译:《实用的Python编程》08_02_Logging

    目录 | 上一节 (8.1 测试) | 下一节 (8.3 调试) 8.2 日志 本节对日志模块(logging module)进行简单的介绍. logging 模块 logging 模块是用于记录诊断 ...

  4. Fundamentals of Power Electronics 目录

    Fundamentals of Power Electronics Translated By Siwei Yang (前六章翻译自Edition 2,后面部分翻译自Edition 3) Part I ...

  5. IDEA 主题下载

    IDEA中主题可以更换,大家可以直接到 http://www.riaway.com/  网站或 http://color-themes.com/?view=index  网站,直接下载自己喜欢的主题. ...

  6. 【C/C++】memset方法的误区

    目录 一.前言 二.函数作用 三.效率对比 四.误区总结 1.按字节设置 2.设置的值只有最低字节有效 3.堆内存不可直接 sizeof 取首地址 4.传参数组不可直接 sizeof 取首地址 一.前 ...

  7. SpringBoot项目war包部署

    服务部署 记录原因 将本地SpringBoot项目通过war包部署到虚拟机中,验证服务器部署. 使用war包是为了方便替换配置文件等. 工具 对象 版本 Spring Boot 2.4.0 VMwar ...

  8. “改造” VS Code 编辑器,一起写个插件吧!

    作者:HelloGitHub-小夏(首发于 HelloGitHub 公众号) 作为一个靠代码作为"生计"的开发者,bug 写的好不好,编辑器真的很重要!那么 Visual Stud ...

  9. 001 - 使用鸿蒙WebView创建简单浏览器 step 1

    打开官网,找到WebView的文档(模拟器不支持) 鸿蒙webview的开发指南(原始链接,方便大家识别并点击):https://developer.harmonyos.com/cn/docs/doc ...

  10. (十二)docker --privileged

    1. privileged参数作用 --privileged Give extended privileges to this container 大约在0.6版,privileged被引入docke ...