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 相关文章推荐
url 特殊字符 传递参数解决方法
Jan 01 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
Ext JS添加子组件的误区探讨
Jun 28 Javascript
javascript中关于&amp;&amp; 和 || 表达式的小技巧分享
Apr 10 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
Nov 10 Javascript
JS控制HTML元素的显示和隐藏的两种方法
Sep 27 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 Javascript
JavaScript流程控制(循环)
Dec 06 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动态创建Flash动画
2006/10/09 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php中JSON的使用方法
2015/04/30 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
对Angular中单向数据流的深入理解
2018/03/31 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
浅谈Python3多线程之间的执行顺序问题
2020/05/02 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
大客户销售经理职责
2013/12/04 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
大学军训感言1500字
2014/03/09 职场文书
验房委托书
2014/08/30 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
交警失职检讨书
2015/01/26 职场文书
2015年保送生自荐信
2015/03/24 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js