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 相关文章推荐
JavaScript 参考教程
Dec 29 Javascript
获取JavaScript用户自定义类的类名称的代码
Mar 08 Javascript
下载文件个别浏览器文件名乱码解决办法
Mar 19 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
Dec 30 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
JavaScript闭包和回调详解
Aug 09 Javascript
webpack 插件html-webpack-plugin的具体使用
Apr 09 Javascript
JS实现的对象去重功能示例
Jun 04 Javascript
浅谈vant组件Picker 选择器选单选问题
Nov 04 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 Socket网络操作类定义与用法示例
2017/08/30 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
phpStorm2020 注册码
2020/09/17 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
NW.js 简介与使用方法
2018/02/01 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
Python内置函数dir详解
2015/04/14 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python list转矩阵的实例讲解
2018/08/04 Python
python3+PyQt5 实现Rich文本的行编辑方法
2019/06/17 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python 基于opencv操作摄像头
2020/12/24 Python
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
放飞梦想演讲稿
2014/05/05 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
小学德育工作总结2015
2015/05/12 职场文书
中秋节晚会开场白
2015/05/29 职场文书
Python基础之进程详解
2021/05/21 Python
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python