我们都知道vue slot插槽可以传递任何属性或html元素,但是在调用组件的页面中我们可以使用 template scope="props"来获取插槽上的属性值,获取到的值是一个对象。

注意:scope="它可以取任意字符串";

上面已经说了 scope获取到的是一个对象,是什么意思呢?我们先来看一个简单的demo就可以明白了~
如下模板页面:

<!DOCTYPE html>
<html><head><title>Vue-scope的理解</title><script src="./libs/vue.js"></script><link rel="stylesheet" href="./css/index.css" /><script src="./js/scope.js"></script></head><body><div id="app"><tb-list :data="data"><template scope="scope"><div class="info" :s="JSON.stringify(scope)"><p>姓名:{{scope.row.name}}</p><p>年龄: {{scope.row.age}}</p><p>性别: {{scope.row.sex}}</p><p>索引:{{scope.$index}}</p></div></template></tb-list></div><script id="tb-list" type="text/x-template"><ul><li v-for="(item, index) in data"><slot :row="item" :$index="index"></slot></li></ul></script><script type="text/javascript">new Vue({el: '#app',data() {return {data: [{name: 'kongzhi1',age: '29',sex: 'man'}, {name: 'kongzhi2',age: '30',sex: 'woman'}]}},methods: {}});</script></body>
</html>

js 代码如下:

Vue.component('tb-list', {template: '#tb-list',props: {data: {type: Array,required: true}},data() {return {}},beforeMount() {},mounted() {},methods: {}
});

上面代码我们注册了一个叫 tb-list 这么一个组件,然后给 tb-list 传递了一个data属性值;该值是一个数组,如下值:

data: [{name: 'kongzhi1',age: '29',sex: 'man'}, {name: 'kongzhi2',age: '30',sex: 'woman'}
]

tb-list组件模板页面是如下:

<ul><li v-for="(item, index) in data"><slot :row="item" :$index="index"></slot></li>
</ul>

遍历data属性值,然后使用slot来接收 tb-list组件中的任何内容;其内容如下:

<template scope="scope"><div class="info" :s="JSON.stringify(scope)"><p>姓名:{{scope.row.name}}</p><p>年龄: {{scope.row.age}}</p><p>性别: {{scope.row.sex}}</p><p>索引:{{scope.$index}}</p></div>
</template>

最后在模板上使用scope来接收slot中的属性;因此scope的值是如下一个对象:

{"row":{"name":"kongzhi1","age":"29","sex":"man"},"$index":0}

因为遍历了二次,因此还有一个是如下对象;

{"row":{"name":"kongzhi2","age":"30","sex":"woman"},"$index":1}

从上面返回的scope属性值我们可以看到,scope返回的值是slot标签上返回的所有属性值,并且是一个对象的形式保存起来,该slot有两个属性,一个是row,另一个是$index, 因此返回 {"row": item, "$index": "index索引"}; 其中item就是data里面的一个个对象。

最后页面被渲染成如下页面;
查看页面效果;

理解vue中的scope的使用相关推荐

  1. 理解vue中的slot-scope=“scope“

    理解vue中的slot-scope="scope" slot是插槽,slot-scope="scope"相当于一行的数据 <el-table-column ...

  2. [Vue][面试]你怎么理解vue中的diff算法?

    你怎么理解vue中的diff算法? #####源码分析1:必要性,lifecycle.js–mountComponent() vue中一个组件一个watcher实例,而组件中可能存在很多个data中的 ...

  3. 深入理解vue中的slot与slot-scope (简单易懂)

    走在前端的大道上 插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于 ...

  4. 理解vue中less的scoped和/deep/工作原理

    理解vue中less的scoped和/deep/工作原理 scoped /deep/ 实战 总结 scoped vue项目一般是单页面.多组件,整个项目共用一个css样式表,有时候我们在写组件的过程中 ...

  5. 前端面试 vue生命周期钩子是如何实现的?理解vue中模板编译原理?

    生命周期钩子在内部会被vue维护成一个数组(vue 内部有一个方法mergeOption)和全局的生命周期合并最终转换成数组,当执行到具体流程时会执行钩子(发布订阅模式),callHook来实现调用. ...

  6. 如何理解vue中 同步异步

    如何理解vue中 同步异步 同步异步 , 举个例子来说,一家餐厅吧来了5个客人,同步的意思就是说,来第一个点菜,点了个鱼,好, 厨师去捉鱼杀鱼,过了半小时鱼好了给第一位客人,开始下位一位客人,就这样一 ...

  7. 深刻理解Vue中的组件

    今天看了下Vue官网上关于组件的教程,感觉内容还挺多,现在把组件中基本的知识梳理一下. 组件的基本使用 注册组件 注册组件就是利用Vue.component()方法,先传入一个自定义组件的名字,然后传 ...

  8. 深入理解vue中的slot与slot-scope

    写在前面 vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项在使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者容易产生&qu ...

  9. slot属性值_深入理解vue中的slot与slot

    作者/云荒杯倾 写在前面 vue中关于插槽的文档说明很短,语言又写的很凝练,再加上其和methods,data,computed等常用选项使用频率.使用先后上的差别,这就有可能造成初次接触插槽的开发者 ...

最新文章

  1. scala报错20/08/31 23:48:40 WARN TaskSetManager: Lost task 1.0 in stage 0.0 (TID 1, 192.168.28.94, exec
  2. Oracle 10g 应用补丁PSU 10.2.0.5.180717
  3. ubuntu下搭建eclipse+tomcat的web开发环境
  4. 三味Capsule:矩阵Capsule与EM路由
  5. 6进程原语:wait()和waitpid()函数
  6. oracle 添加字段
  7. android+微信一键关注,一键关注微信公众平台JS代码有哪些?
  8. C++学习之路 | PTA(天梯赛)—— L3-003 社交集群 (30分) (带注释) (并查集) (精简)
  9. cad安装日志文件发生错误_Cad2012安装总是到60%左右失败,现贴出安装出错的安装日志文件,望大神帮忙解决下...
  10. 功能最强大的编辑器——vi
  11. 搜索与问答——【NeurIPS 2021】BEIR:信息检索模型零样本评估的异构基准
  12. 信用卡刷卡消费背后的故事
  13. 端口扫描神器——nmap
  14. Google支付订单真伪的验证方式
  15. spot卫星介绍与数据下载
  16. VBA使用PING测试网络连接
  17. 中国大学生实习大数据分析报告
  18. 塑料壳上下扣合的卡扣设计_一种组合玩具的塑料卡扣的制作方法
  19. CString、CTime和COleDateTime转换
  20. 更换服务器IP有哪些步骤?如何操作?

热门文章

  1. 5G NR PDSCH时域资源调度
  2. 51单片机流水灯控制(5种方法)
  3. Hadoop2 MR-JobHistory服务介绍
  4. C++控制台程序点击界面程序暂停,回车程序继续运行的原因
  5. $timeformat、$time、$realtime用法
  6. ApolloVision视觉之旅(1):机器视觉敏捷开发与快速应用平台
  7. SMT32F103单片机控制小灯闪烁(文件创建与设置)
  8. iOS开发UI篇—xib的简单使用
  9. uniapp 下载文件/二进制流数据文件 ,保存文件 ,打开文件。以及H5下载二进制流文件。
  10. 极光推送设置别名setAlias失败