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 相关文章推荐
jQuery使用手册之 事件处理
Mar 24 Javascript
JScript的条件编译
May 29 Javascript
基于jquery的固定表头和列头的代码
May 03 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
通过bootstrap全面学习less
Nov 09 Javascript
基于Javascript倒计时效果
Dec 22 Javascript
JS中Array数组学习总结
Jan 18 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
angularjs2中父子组件的数据传递的实例代码
Jul 05 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
Oct 18 Javascript
jquery无缝图片轮播组件封装
Nov 25 jQuery
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
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
PHP实现实时生成并下载超大数据量的EXCEL文件详解
2017/10/23 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
Javascript 错误处理的几种方法
2009/06/13 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
JavaScript实现简单动态表格
2020/12/02 Javascript
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
Python 的AES加密与解密实现
2019/07/09 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
服务口号大全
2014/06/11 职场文书
综治工作心得体会
2014/09/11 职场文书
就业协议书
2014/09/12 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL