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 相关文章推荐
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
jQuery仿Excel表格编辑功能的实现代码
May 01 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
May 08 Javascript
解决jquery实现的radio重新选中的问题
Jul 03 Javascript
简单易懂的天气插件(代码分享)
Feb 04 Javascript
jQuery文字轮播特效
Feb 12 Javascript
使用vue-aplayer插件时出现的问题的解决
Mar 02 Javascript
详解如何提升JSON.stringify()的性能
Jun 12 Javascript
详解一些适用于Node.js的命名约定
Dec 08 Javascript
vue element 关闭当前tab 跳转到上一路由操作
Jul 22 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
批量修改RAR文件注释的php代码
2010/11/20 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Jquery 绑定时间实现代码
2011/05/03 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
Python中用max()方法求最大值的介绍
2015/05/15 Python
Python生成密码库功能示例
2017/05/23 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
python中pyqtgraph知识点总结
2021/01/26 Python
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
高中毕业自我鉴定范文
2013/10/02 职场文书
班主任工作年限证明
2014/01/12 职场文书
六一节目主持词
2014/04/01 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
外贸英文求职信范文
2015/03/19 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
如何使用flask将模型部署为服务
2021/05/13 Python