Vue.js入门之表单和组件基础

前面几期整理,详见博客

  1. Vue.js框架入门之vue简介和基本语法(一)

  2. Vue.js框架入门之基本语法(二)

  3. Vue.js框架入门之条件渲染、列表渲染、事件处理

现在来续写第四期—Vue.js的表单和组件基础

 

一、表单输入绑定

这节我们为大家介绍 Vue.js 表单上的应用。

我们可以用 v-model 指令在表单控件元素上创建双向数据绑定。

 v-model 会根据控件类型自动选取正确的方法来更新元素。

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

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

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

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

基本表单标签这里就不一一介绍了,有HTML基础的基本都懂

直接上一段表单双向绑定的典型案例的代码演练

Vue.js的用法写在注释上

代码演练

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="app">
	<div id="example-2">
		<div class="text">
			<p>
				姓名:<input v-model="name" placeholder="请输入您的姓名">  <!-- 创建双向绑定的v-model值为name -->
			</p>
			<p>
				学号:<input v-model="num" placeholder="请输入您的学号" /> <!-- 创建双向绑定的v-model值为num -->
			</p>
			</div>
		<div class="text">
			<p>性别</p>
			<input type="radio" id="one" value="男" v-model="sex">  <!-- 单选框radio,创建双向绑定的v-model值为sex -->
			<label for="one">男</label>
			<br>
			<input type="radio" id="two" value="女" v-model="sex">
			<label for="two">女</label>
		</div>
		<div class="text">
			<p>请选择你要选择的科目</p>
			<!-- 创建复选框 -->
			<input type="checkbox" id="语文" value="语文" v-model="kemu">
			<label for="语文">语文</label>
			<input type="checkbox" id="数学" value="数学" v-model="kemu">
			<label for="数学">数学</label>
			<input type="checkbox" id="英语" value="英语" v-model="kemu">
			<label for="英语">英语</label>
			<input type="checkbox" id="物理" value="物理" v-model="kemu">
			<label for="物理">物理</label>
			<input type="checkbox" id="化学" value="化学" v-model="kemu">
			<label for="化学">化学</label>
			<input type="checkbox" id="生物" value="生物" v-model="kemu">
			<label for="生物">生物</label>
		</div>
		<div class="text border">
			<div style="padding-left: 10px;">
			<p>您的信息如下</p>
			<!-- 数据双向绑定后,可以再次渲染对应model的值 -->
			<p>姓名:{{name}}</p>
			<p>学号:{{num}}</p>
			<p>性别:{{sex}}</p>
			<p>科目:{{kemu}}</p>
			</div>
		</div>
			
			<!-- 创建提交事件submit -->
		<button type="button" @click="submit">提交</button>
		
	</div>
	
</div>
<script type="text/javascript">
var vm = new Vue({
	el:"#example-2",
	data :{
		// data数据初始化赋值
		name:"",
		num:"",
		sex:"",
		kemu:[],
	},
	methods:{
		// 编写提交事件submit函数
		submit:function(){
			// 这里可以声明一个对象obj,把表单的值进行打包
			var obj ={
				name:this.name,
				num:this.num,
				sex:this.sex,
				kemu:this.kemu,
			}
			console.log(obj);  /* 控制台打印出obj对象的值 */
		}
	}
	
});
</script>
<style type="text/css">
.text{
	margin-top:10px;
}
.border
{
	border-style:solid;
	border-width:1px;
}
</style>
</body>
</html>

看一下运行效果

二、组件基础 

1、组件简介

  • 模块化:是从代码逻辑的角度进行划分的;

  • 组件化:是从UI界面的角度进行划分的。

组件(Component)是 Vue.js 最强大的功能之一,组件可以扩展 HTML 元素,封装可重用的代码。

组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树,如下图所示:

https://img4.sycdn.imooc.com/5b794d1c00014f2d07730247.jpg

这里有一个 Vue 组件的示例:

// 定义一个名为 button-counter 的新组件
Vue.component('button-counter', {
  data: function () {
    return {
      count: 0
    }
  },
  template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})

组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 <button-counter>。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用:

<div id="demo">
  <button-counter></button-counter>
//也可以创建很多个button-counter组件,因为组件是可以复用的
</div>
 new Vue({ el: '#demo' })

可以看到页面可以渲染出一个button组件

因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 datacomputedwatchmethods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。

 

关于组件的具体使用方法下期会详细介绍~~~~

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值