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 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
javascript下利用arguments实现string.format函数
Aug 24 Javascript
jquery获取选中的文本和值的方法
Jul 08 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
js使用递归解析xml
Dec 12 Javascript
javascript获得当前的信息的一些常用命令
Feb 25 Javascript
JS制作手机端自适应缩放显示
Jun 11 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
Mar 01 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
详解如何去除vue项目中的#——History模式
Oct 13 Javascript
安装Node.js并启动本地服务的操作教程
May 12 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
php 获取页面中指定内容的实现类
2014/01/23 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
Javascript学习笔记7 原型链的原理
2010/01/11 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
使用原生js封装的ajax实例(兼容jsonp)
2017/10/12 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
初步讲解Python中的元组概念
2015/05/21 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
pymongo中group by的操作方法教程
2019/03/22 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
PyTorch中的Variable变量详解
2020/01/07 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
如何利用python 读取配置文件
2021/01/06 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
咖啡馆创业计划书
2014/01/26 职场文书
主要领导对照检查材料
2014/08/26 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
环保主题班会教案
2015/08/13 职场文书
总经理聘用协议书
2015/09/21 职场文书