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 相关文章推荐
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
Oct 23 Javascript
javascript中expression的用法整理
May 13 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 Javascript
用file标签实现多图文件上传预览
Feb 14 Javascript
react-native ListView下拉刷新上拉加载实现代码
Aug 03 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
Vue使用NProgress的操作过程解析
Oct 10 Javascript
p5.js临摹旋转爱心
Oct 23 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 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简单静态页生成过程
2008/03/27 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JavaScript地图拖动功能SpryMap的简单实现
2013/07/17 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
详解vue.js的devtools安装
2017/05/26 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
vue项目打包上传github并制作预览链接(pages)
2019/04/19 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
基于python检查矩阵计算结果
2020/05/21 Python
Python join()函数原理及使用方法
2020/11/14 Python
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
2015公司年度工作总结
2015/05/14 职场文书
单独二胎证明
2015/06/24 职场文书
法制主题班会教案
2015/08/13 职场文书