vue中的scope使用详解


Posted in Javascript onOctober 29, 2017

我们都知道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" rel="external nofollow" />
 <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使用详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!

Javascript 相关文章推荐
jQuery中add实现同时选择两个id对象
Oct 22 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
Dec 13 Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
Jun 06 Javascript
node.JS md5加密中文与php结果不一致的解决方法
May 05 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
Feb 22 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
微信小程序扫描二维码获取信息实例详解
May 07 Javascript
微信小程序身份证验证方法实现详解
Jun 28 Javascript
在vue中使用jsonp进行跨域请求接口操作
Oct 29 Javascript
Vue.js划分组件的方法
Oct 29 #Javascript
vue.js  父向子组件传参的实例代码
Oct 29 #Javascript
vue.js todolist实现代码
Oct 29 #Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 #Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 #jQuery
bootstrap table sum总数量统计实现方法
Oct 29 #Javascript
vue.js语法及常用指令
Oct 29 #Javascript
You might like
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
深入理解python中的atexit模块
2017/03/07 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
豪华床上用品 :Jennifer Adams
2019/09/15 全球购物
入团者的自我评价分享
2013/12/02 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
农村党员一句话承诺
2014/05/30 职场文书
少先队活动总结
2014/08/29 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
逃课检讨书
2015/01/26 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
奖学金申请书(范文)
2019/08/14 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
Win10系统下配置Java环境变量
2021/06/13 Java/Android
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
美元符号 $
2022/02/17 杂记