文档:
<router-link :to="item.path" :exact="true" :aria-expanded="isExpanded(item) ? 'true' : 'false'"
v-if="item.path" @click.native="toggle(index, item)">
请问什么叫做原生事件?为什么在router-link中加.native才能生效,而a标签就不用?
文档:
<router-link :to="item.path" :exact="true" :aria-expanded="isExpanded(item) ? 'true' : 'false'"
v-if="item.path" @click.native="toggle(index, item)">
请问什么叫做原生事件?为什么在router-link中加.native才能生效,而a标签就不用?
通俗点,vue 自己定义的标签 <router-link> 还有 组件<my-vue-template/> 没有点击事件,H5不论什么白标签(<div>、)天生就有点击事件。加上 .native就变身H5标签。
我是这样理解的,组件包括路由<router-link>都不是h5的原生标签,在用template中的内容替换掉组件时,如果不加.native,默认原来组件上的事件是不会跟过来的,其实和原生JS是一样的:一个div中有一个子div a,此时如果remove这个div,再append一个div b,那么b肯定没有a上面的事件,因为b是一个新的div,它只不过是顶替了a。
27 回答13.8k 阅读
6 回答2.3k 阅读✓ 已解决
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
6 回答1.1k 阅读
4 回答1.6k 阅读✓ 已解决
原生就类似于你直接用
绑定事件。
router-link
会阻止click
事件,你可以试试只用click
不用native
,事件是不会触发的。而a标签不会阻止。