v-slot和slot、slot-scope之间相互替换实例


Posted in Javascript onSeptember 04, 2020

如果组件文档里面用的是v-slot,而你用的是vue2.6之前的版本,则需要替换v-slot:所以有两种替换方式,注意看两块v-slot有啥不同,你就知道你该怎么用slot-scope和slot来替换文档中的v-slot了

v-slot使用方式1:

<template v-slot:operate="{ row }"><template>

则可替换为:

<template slot="operate" slot-scope="{ row }"></template>

v-slot使用方式2:

<template v-slot="{ row }"><template>

则可替换为:

<template slot-scope="row"></template>

先记录后期再完善,赶项目去了

补充知识:V-for and slot-scoped报错问题

此场景是为了用v-for动态渲染表格的slot

可能会这么写

<a-table>
 <span v-for="(item, index) in header" :key="index" :slot="item.dataIndex" slot-scope="text" >
  {{ text }}
 </span>
</a-table>

但是这样子会报错,因为v-for和slot-scope在同一级

Ambiguous combined usage of slot-scope and v-for on (v-for takes higher priority). Use a wrapper < template> for the scoped slot to make it clearer.

提示在外边包一层< template>,于是你可能改成下面这样,但是也会报错

<a-table>
 <template v-for="(item, index) in header" :key="index">
 <span :slot="item.dataIndex" slot-scope="text" >
  {{ text }}
 </span>
 </template>
</a-table>
< template> cannot be keyed. Place the key on real elements instead.

提示< template>template不能写key, 即使没有这个错,表格数据也不会渲染出来,因为这一层没有slot,应该说slot应该是放最外面,同时把:key放里面

改成如下

<a-table>
 <template v-for="(item, index) in header" :slot="item.dataIndex" slot-scope="text">
 <span :key="index">
  {{ text }}
 </span>
 </template>
</a-table>

以上解决问题

有个slot没有渲染的问题

<template v-for="(slotname, idx) in ['status', 'sub_account_status']" :slot="slotname" slot-scope="text" >
  <span :key="idx">
  <a-tag v-if="text === '正常'" color="blue">{{ text }}</a-tag>
  <a-tag v-else color="red">{{ text }}</a-tag>
  </span>
 </template>
 <!-- 包名称、关联账号 -->
 <template v-for="(slotname, idx) in ['app_name', 'roles']" :slot="slotname" slot-scope="text" >
  <span :key="idx">
  <a-tooltip placement="top" >
  <template slot="title">
  <span v-for="(item, index) in text" :key="index">{{ item }}<br/></span>
  </template>
  <div class="tableHidden">
  <a-tag v-for="(item, index) in text" :key="index">{{ item }} </a-tag>
  </div>
  </a-tooltip>
  </span>
 </template>

好像是因为2个v-for="(slotname, idx)"里的slotname名字一样了,对的,就是取的临时变量名,修改成不一样的就好了,神奇

<template v-for="(name, idx) in ['status', 'sub_account_status']" :slot="name" slot-scope="text" >
  // 上面那个name
  <span :key="idx">
  。。。
  </span>
 </template>
 <!-- 包名称、关联账号 -->
 <template v-for="(slotname, idx) in ['app_name', 'roles']" :slot="slotname" slot-scope="text" >
  <span :key="idx">
  。。。
  </a-tooltip>
  </span>
 </template>

以上这篇v-slot和slot、slot-scope之间相互替换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
IE中鼠标经过option触发mouseout的解决方法
Jan 29 Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 jQuery
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
Aug 24 Javascript
微信小程序Flex布局用法深入浅出分析
Apr 25 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 Javascript
javascript实现商品图片放大镜
Nov 28 Javascript
javascript 模块依赖管理的本质深入详解
Apr 30 Javascript
vue实现移动端input上传视频、音频
Aug 18 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 #Javascript
解决vue scoped scss 无效的问题
Sep 04 #Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
Sep 04 #Javascript
基于vue中的scoped坑点解说
Sep 04 #Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 #Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
Sep 04 #Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 #Javascript
You might like
通过文字传递创建的图形按钮
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
10条PHP高级技巧[修正版]
2011/08/02 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
php通过各种函数判断0和空
2020/07/04 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
利用Celery实现Django博客PV统计功能详解
2017/05/08 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
Araks官网:纽约内衣品牌
2020/10/15 全球购物
财务管理专业推荐信
2013/11/19 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
销售团队获奖感言
2014/08/14 职场文书
聘任证明怎么写
2015/03/02 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
初中语文教学研修日志
2015/11/13 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang