关于小bug的处理及ref的运用

1、关于标签混乱排列

<div id="app">
		<table>
			<tbody>
				<row></row>
				<row></row>
				<row></row>
			</tbody>
		</table>
	</div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript">
	//全局注册组件row
		Vue.component("row", {
			template: "<tr><td>hello world</td></tr>"
		})
		var app = new Vue({
			el: "#app",
			data: {
				
			}
		})

运行结果为:
在这里插入图片描述
问题描述:如图,虽然页面渲染出了预期想要的效果,但是elements的dom树上,创建的tr并没有在table、tbody标签内部。因为H5规定tbody内部必须放置tr。
处理方法:tbody下面放置tr,里面设置is=“row”属性

<table>
	<tbody>
	//tbody下面放置tr,里面设置is=“row”属性
		<tr is="row"></tr>
		<tr is="row"></tr>
		<tr is="row"></tr>
	</tbody>
</table>

2、ref的运用demo

运用一:
在vm上有 r e f s 属 性 , 值 为 对 象 , 在 标 签 内 设 置 r e f = “ 名 字 ” , 可 以 通 过 t h i s . refs属性,值为对象,在标签内设置ref=“名字”,可以通过this. refs,ref=this.refs.名字获取该dom,从而对dom进行操作。
如下:在div上设置ref=“row”,点击操作通过this.$refs.row获取dom节点

	<div id="app">
			<div @click="getValue" ref="row">hello world</div>
	</div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript">
		var app = new Vue({
			el: "#app",
			data: {
				
			},
			methods: {
				getValue: function() {
					console.log(this.$refs.row.innerHTML)//获取标签内的内容
				}
			}
		})

运用二:
运用ref属性以及$emit实现数字之和

	<div id="app">
		<count @childnum="giveNum" ref="num1"></count>
		<count @childnum="giveNum" ref="num2"></count>
		<div>{{total}}</div>
	</div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript">
		//注册count组件
		Vue.component("count", {
			template: "<div @click='addNum'>{{num}}</div>",
			data() {
				return {
					num: 0
				}
			},
			methods: {
				addNum: function() {
					this.num++;
					this.$emit("childnum")
				}
			}
		})
		var app = new Vue({
			el: "#app",
			data: {
				total: 0
			},
			methods: {
				giveNum: function(value) {
					console.log(this.$refs.num1);//可获取count组件
					console.log(this.$refs.num2);
					this.total = this.$refs.num1.num + this.$refs.num2.num;
				}
			}
			
		})

在这里插入图片描述
如图:通过this.$refs.num1,可获得组件,并对组件进行操作,访问组件的num值。
缺点:反复操作dom,性能不佳。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值