制作一个简易的可点击的类文档

1.html文档片段

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>Document</title>
	<style>
		.language span {
			line-height: 30px;
			display: inline-block;
			padding: 0 10px;
			border: 1px solid #ccc;
			cursor: pointer;
		}
		.language span.on{
			background: orange;
			color: white;
		}
	</style>

</head>
<body>
	<div id="app">
		<my-input-two :value="language" @change="change"></my-input-two>
	</div>
</body>
</html>

2.js文档片段

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
	Vue.component('my-input-two',{
		props:{ //接收父组件传来的数据
			value:{
				type:String,//指定数据类型
				require:true,//是否必填
			}
		},
		data:function(){ //使用工厂函数返回data,实现深拷贝,避免牵一发而动全身
			return {
				list:[
					{id:1,lg:'亚索'},
					{id:2,lg:'盲僧'},
					{id:3,lg:'诺手'},
					{id:4,lg:'瑞文'},
					{id:5,lg:'剑姬'},
				]
			}
		},
		// 实现页面布局
		template:`<div class="language">
			<span 
			v-for="(item) in list" 
			v-text="item.lg"   //通过循坏将数据到html标签上
			@click="change(item.id)"  //点击获取唯一的id
			:class="{'on':item.id == value}"  //点击谁谁就处于高亮状态
			></span>
		</div>`,
		methods:{
			change(id) { //子组件的点击事件获取子组件变化后的值
				this.$emit('change',id)//通过事件通信触发父组件的自定义事件,然后将值传回父组件
			}
		}
	})
	var app = new Vue({
		el:'#app',//挂载的节点
		data:{//储存数据
			language :'1'//将要传到子组件的值(初始值)
		},
		methods:{
			change(id) { //通过自定事件接收子组件传来的值
				this.language = id+"" //将传给子组件的数据重新赋值,这个值就是从子组件传过来的值
			}
		},
	})
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值