vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单


Posted in Javascript onSeptember 14, 2018

我的 github 地址 - vue3.0Study - 阶段学习成果都会建立分支。

新组件 - 新路由 Forms.vue ( 下面仅介绍如何创立, 不进行介绍 ) :

<template><div class="form">
 <input v-model="message" placeholder="edit me">
 <p>Message is: {{ message }}</p>
</div></template>

<script>
export default {
 name: 'forms', // eslint-disable-next-line
 data: function () { return { 
  d: '' // eslint-disable-next-line
 } }
}
</script>

新建路由 ( 在 router.js 中 ):

import Forms from './views/Forms.vue'

export default new Router({
 routes: [
  { path: '/', .......},
  {
   path: '/form',
   name: 'forms',
   component: Forms
  },
  { path: '/about', ......}
 ]
})

这样就建立新的路由,这块我建立了新的 git commit。

注意:组件名称尽量满足以下要求:1、勿采用 HTML 标签名;2、勿采用 vue 内部保留的名称如 slot ( 插槽 )、partial、component等。3、以字母开头。更加详细的组件命名内容请参见:https://cnodejs.org/topic/5816aabdcf18d0333412d323

文本表单

贴个代码,具体的使用方法不多介绍:

<template><div class="form">
 <input v-model="message1" placeholder="单行文本">
 <p>单行文本: {{ message1 }}</p>

 <span>多行文本:</span>
 <p>{{ message2 }}</p>
 <textarea v-model="message2" placeholder="多行文本"></textarea>
</div></template>

<script>
export default {
 name: 'forms', // eslint-disable-next-line
 data: function () { return { 
  message1: '',
  message2: '差值' // eslint-disable-next-line
 } }
}
</script>

需要注意的是:<textarea v-model="message2" placeholder="多行文本">{{ someProp }}</textarea> 中的红色部分无效。

选择框

<label for="cd" style="color:green">单选框:</label>
 <input type="checkbox" id="cd" v-model="checked1">
 <label for="cd">{{ checked1 }}</label>

 <div>
  <label for="jack" style="color:green">复选集合:</label>
  <input type="checkbox" id="name1" value="章三" v-model="checkedNames">
  <label for="name1">章三</label>
  <input type="checkbox" id="name2" value="里斯" v-model="checkedNames">
  <label for="name2">里斯</label>
  <input type="checkbox" id="name3" value="王五" v-model="checkedNames">
  <label for="name3">王五</label>
  <br>
  <span>所选的人有: {{ checkedNames }}</span>
 </div>

 <div>
  <label style="color:green">单选集合:</label>
  <input type="radio" id="nan" value="男" v-model="picked">
  <label for="nan">男</label>
  <input type="radio" id="nv" value="女" v-model="picked">
  <label for="nv">女</label>
  <br>
  <span>性别是: {{ picked }}</span>
 </div>

 <div>
  <label style="color:green">单选下拉框:</label>
  <select v-model="selected1">
   <option disabled value="">请选择</option>
   <option>A</option>
   <option>B</option>
   <option>C</option>
  </select>
  <span>选择的是: {{ selected1 }}</span>
 </div>

 <div>
  <label style="color:green">多选下拉框:</label>
  <select v-model="selected2" multiple style="width: 50px;">
   <option>A</option>
   <option>B</option>
   <option>C</option>
  </select>
  <span>选择的是: {{ selected2 }}</span>
 </div>

export default {
 name: 'forms', // eslint-disable-next-line
 data: function () { return {
  checked1: null,
  checkedNames: [],
  picked: null,
  selected1: null,
  selected2: [],
  message1: null,
  message2: null // eslint-disable-next-line
 } }
}

注意:尽管有的选择框,无须在 data 属性中也声明同样的属性,但别这么做,任何选择框的属性,都应该在 data 声明该属性。

对于多选框,也可以采用 v-for 来循环显示,读者可自行实验。

值绑定

上面介绍那些选择框,属性绑定的默认的值。对此先来看看下面这个例子:

<input type="checkbox" id="cd" v-model="checked1">
<label for="cd">{{ checked1 }}</label>
<input
 type="checkbox"
 id="cd1"
 v-model="checked11"
 true-value="有效"
 false-value="无效"
>
<label for="cd1">{{ checked11 }}</label>

上面的例子,是系统默认的,选中之后 checked1 是 true。下面就是修改了选中之后,属性 checked11 对应的值,也就是【有效】。

再比如:<label style="color:green">绑定到a:<input type="radio" v-model="pick" v-bind:value="a"></label>

其中 v-bind:value="a" 意思:选中之后,data.pick = data.a 。在 js 中 data 必须要设置这两个属性,且 a 要有初始值。

可以绑定到对象:<label style="color:green">绑定到对象:<input type="radio" v-model="pick1" v-bind:value="{a:1}"></label>

也可以:<label style="color:green">绑定到对象:<input type="radio" v-model="pick1" v-bind:value="obj"></label>

对于所有的上面介绍的表单,都可以采用这种值绑定,限于篇幅,不一一介绍。

最后还有 - 修饰符

.lazy   .number   .trim

.lazy 改变 input 和 textarea 输入框的更新模式。上面的两个输入框的例子,都是在敲键盘一边输入一边更新;加入这个之后,变成失去焦点才会更新。

.number 则是将强制输入转换为 Number 类型。

.trim 去掉输入的字符串空格 ( 注意:加入之后,不但首尾的空格会去掉,中间部分连续多个空格会替换为单个空格 )。

比如如下例子: <textarea v-model.trim="message2" placeholder="多行文本"></textarea>

关于组件内部的基础功能 ( 表单、指令、绑定、属性 ) 已经简单了解熟悉,深入的理解需要在运用过程中不断加深。后面的学习将进一步理解 MVC 框架的核心概念之一 【组件】。

总结

以上所述是小编给大家介绍的vue3.0 CLI - 2.4 - 新组件 Forms.vue 中学习表单  ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 模拟点击广告
Jan 02 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
原生JS简单实现ajax的方法示例
Nov 29 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
基于easyui checkbox 的一些操作处理方法
Jul 10 Javascript
详解Chart.js轻量级图表库的使用经验
May 22 Javascript
js实现拖动缓动效果
Jan 13 Javascript
JS如何把字符串转换成json
Feb 21 Javascript
JavaScript前后端JSON使用方法教程
Nov 23 Javascript
原生JavaScript实现换肤
Feb 19 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
Sep 14 #Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
Sep 14 #Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
Sep 14 #Javascript
node中的session的具体使用
Sep 14 #Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 #Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
Sep 14 #Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 #Javascript
You might like
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
JavaScript实现文件下载并重命名代码实例
2019/12/12 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python matplotlib画图实例代码分享
2017/12/27 Python
python SSH模块登录,远程机执行shell命令实例解析
2018/01/12 Python
python如何重载模块实例解析
2018/01/25 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python中的数据结构比较
2019/05/13 Python
django实现支付宝支付实例讲解
2019/10/17 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
python手写均值滤波
2020/02/19 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
应届生英语教师求职信
2013/11/05 职场文书
超级搞笑检讨书
2014/01/15 职场文书
高中生自我评语大全
2014/01/19 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
大学生毕业个人总结
2015/02/15 职场文书
机关工会工作总结2015
2015/05/26 职场文书
告知书格式
2015/07/01 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python