组件使用中的细节点

1,is的使用

正常情况下的table标签,table标签里面有tbody,tbody里面有tr,tr里面有td

现在我们想要用模板来显示tr以及tr里面的内容

发现模板跑到了table标签外面,并且和table同级这一层

这是因为在h5的规范里面说明,table里面必须放tbody,tbody里面必须要放tr,

我们现在在tbody里面放的row,那么当浏览器解析页面的时候就会出问题

解决方法:is

这段代码的意思是,我tbody里面只能放tr,那么我就放tr ,但是我们加了一个is=“row” 说明,虽然这是一个tr但是实际上这是一个row组件

这样就可以了

那么对于有序列表ol>li  ,  无序列表 ul>li  和select>option请别直接使用组件,使用is来标注组件的名字

2,子组件中的data表示

我们用组件中的数据来表示模板

这样子乍一看没什么问题

实际上,这是不行的

控制台报错说,data必须是一个函数,而不是一个对象

这是因为我们在根组件里面使用data来定义数据是没有问题的,但是当我们在非根组件里面就不能直接使用对象来定义数据

我们只能通过data定义为一个函数,然后让函数返回一个对象

之所以这样设计是因为子组件不像根组件只调用一次,子组件可能在页面的多个位置都有调用,那么我们现在想要每一个子组件都有一个自己数据,不希望和其他的子组件产生冲突

3,Vue中的ref 引用

一般来说,vue不希望我们直接操作dom,而是通过数据得变化来操作dom,但是有时候在处理相对复杂的动画情况的时候,我们不可免的要去操作dom,那么,在Vue中怎么样才能操作dom呢

我们给要操作的dom元素div加一个ref属性,名字为hello,然后在methods方法中,输出dom元素,this.$refs指的的整个Vue实例里面全部的引用,this.$refs.hello 指的是实例中所有引用里面有一个名字为hello的引用

返回的就是hello对应的节点

我们现在是在一个div标签上添加一个ref,那么通过this.$refs获得的就是一个dom元素

如果我们在一个组件上添加一个ref,那么通过this.$refs获得的就是一个组件的引用

点击数字之后, 数字都会自己加1

点击数字,两个数字就会相加并显示到第三行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值