Vue2五、商品分类:My-Tag表头组件,My-Table整个组件

ops/2024/12/23 12:16:10/

准备:

安包 npm less less-loader。拆分:一共分成两个组件部分:

1:My-Tag 标签一个组件。2:My-Table 整体一个组件(表头不固定,内容不固定(插槽))

一,My-Tag 分类标签的功能:

tip:拆分时style要加:<style lang="less" scoped> </style>

在APP.vue中:导入、注册、使用组件

功能:

1 : input修改数据 和 文字互斥

用 布尔数据  isShow:falseinput加v-if 、div加v-else

javascript"><template><div class="my-tag"><inputclass="input"type="text"placeholder="输入标签"v-if="isShow"/><div class="text" v-else>茶具</div></div>
</template>
<script>
// My-Tag 分类标签的功能:
// 1 : input修改数据  和  文字互斥   用   布尔数据  v-if  v-else 
// 2 : 双击文字   div显示input标签→自动获得焦点
// 3 : input要数据回显
// 4 : 用户输入后,回车→把新的内容渲染到页面→数据应该同步
export default {
data(){return{isShow:false}
},
}
</script>

2 :双击显示input+自动获焦和失焦

双击文字 div显示input标签输入框+input输入框自动获得焦点

光标在输入框中失去焦点时:输入框变成div里的文字

dbl=double 

1 div(茶具)添加@dblclick双击   修改isShow:为true

main全局自定义命令获焦指令,在input身上直接用v-focus

3 input添加   @blur失焦  isShow:修改为true,输入框变成div里的文字

javascript">import Vue from 'vue'
import App from './App.vue'Vue.config.productionTip = false//自定义命令---获得焦点-----全局-----在main.js
Vue.directive('focus', {inserted(el) {el.focus()}})// ---------------------------------
new Vue({render: h => h(App),
}).$mount('#app')
javascript"><template><div class="my-tag"><inputclass="input"type="text"placeholder="输入标签"v-if="isShow"v-focus@blur="isShow=false"/><!--dbl=double  双击-------><div class="text" v-else @dblclick="dblfn" >茶具</div></div>
</template>
<script>
// My-Tag 分类标签的功能:
// 1 : input修改数据  和  文字互斥   用   布尔数据  v-if  v-else 
// 2 : 双击文字   div显示input标签→自动获得焦点
// 3 : input要数据回显
// 4 : 用户输入后,回车→把新的内容渲染到页面→数据应该同步
export default {
data(){return{isShow:false}},
methods:{dblfn(){this.isShow=true}
}
}
</script>

3 : input要数据回显

父传子- 子组件用父组件的数据。父子通信比较繁琐,

所以用v-model双向绑定 化简(V-model=value属性和input事件的缩写)

1 :父APP.vue:假设一个txt="哈哈哈"   字符串数据,

2 :My-Tag挖坑:props:{  value:String  },

3:父APP.vue: 使用v-model       <MyTag v-model="txt"></MyTag>

4:input添加:value="value" 

5  :  div里文字用差值表达式代替{{value}}

4 : 用户输入后回车,新内容渲染到页面

用户输入后,回车→把新的内容渲染到页面→数据应该同步

1:在input里添加回车事件    @keyup.enter="enterfn"

2 :写函数enterfn:通知父组件保存用户输入的数据$emit(事件名,用户输入的数据)-语法糖

                用户输入的值——借助事件对象获取value的值e.target.value

3 :显示div 隐藏输入框 this.isShow=false

二、My-Table  整体一个组件

1:拆组件

把APP.vue的my-table的结构和css样式剪切到My-Table(拆成组件,好处就是能调用多次)

tip:拆分时My-Table的style要加:<style lang="less" scoped> </style>

然后把My-Table在根组件APP.vue导入、注册、使用

tip:把My-Tag的导入注册和使用全部注释(不然会报错,My-Tag被发现但未使用)

2:父传子拿数据(for循环渲染数据)

1 :My-Table挖坑 使用父组件的数据 

2:父组件传数据

3:子组件v-for循环替换数据

3:插槽

拆成组件,能调用多次,但因为调用多次,不可能每次调用的表格都一模一样(结构不固定),

所以用插槽(表头和内容分别用插槽)允许根据需要定制

1: My-Table表头和内容slot插槽,

2 : name命名——表头:name="head",内容:name="con"  在APP.vue表头和内容接收一下数据

3:内容的插槽——用作用域插槽

My-Table作用域的v-for的值(:item="item" :index="index")扔到APP.vue使用

4 : 放开MyTag注释更换MyTag使用时绑定的值

1:把分类标签的My-Tag的引入、注册、使用、的注释放开,

2: 把使用MyTag 组件绑定的v-model的值更换成item.tag

  <MyTag v-model="item.tag"></MyTag>


http://www.ppmy.cn/ops/144302.html

相关文章

SDK 和 REST API 的区别

SDK 和 REST API 的区别 1. 什么是 SDK&#xff1f; SDK&#xff08;Software Development Kit&#xff0c;软件开发工具包&#xff09;是一组工具、库、文档和代码示例&#xff0c;用来帮助开发者更容易地与特定的服务或平台集成。SDK 是一个封装好的“工具箱”&#xff0c;…

P10425 [蓝桥杯 2024 省 B] R 格式

题目描述&#xff1a; 小蓝最近在研究一种浮点数的表示方法&#xff1a;R 格式。对于一个大于 00 的浮点数 d&#xff0c;可以用 R 格式的整数来表示。给定一个转换参数 n&#xff0c;将浮点数转换为 R 格式整数的做法是&#xff1a; 将浮点数乘以 2^n。四舍五入到最接近的整…

2025前端面试热门题目——计算机网络篇

计算机网络篇——面试 1. 到底什么是 TCP 连接? TCP 连接的定义 TCP&#xff08;传输控制协议&#xff09;是一个面向连接的传输层协议。TCP 连接是通过 三次握手 确立的可靠数据通信链路&#xff0c;保证了在不可靠网络&#xff08;如互联网&#xff09;上的数据传输的准确…

5G -- 空口关键技术

前言&#xff1a; 手机(UE)和5G基站(gNodeB)之间的空中接口 新技术的特点&#xff1a; 1、提升速率&#xff1a;大带宽、新编码、高阶调制、F-OFDM、M-MIMO 2、降低时延&#xff1a;灵活帧结构、自包含时隙、免授权调度、D2D 3、提升覆盖&#xff1a;上下行解耦、EN-DC(双连…

计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫 机

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

6.4 对称矩阵

一、对称矩阵的性质 可以毫不夸张的说&#xff0c;对称矩阵 S S S 是世界上所能看到的最重要的矩阵 —— 不仅在线性代数理论也是在实际应用中。关于对称矩阵的关键问题&#xff0c;这个问题有两部分答案&#xff1a; 当 S 是对称矩阵时&#xff0c; S x λ x 有什么特殊的&…

MySQL内查询

MySQL是一种关系型数据库管理系统&#xff0c;可以使用SQL&#xff08;结构化查询语言&#xff09;进行数据查询。以下是一些常见的MySQL查询示例&#xff1a; 查询表中所有数据&#xff1a; SELECT * FROM 表名;查询表中指定列的数据&#xff1a; SELECT 列1, 列2 FROM 表名…

OpenAI o3 “震撼” 发布后回归技术本身的审视与进一步思考

OpenAI o3就这么 “duang”的一下来了&#xff0c;相关的各种评测和报告资讯一大堆&#xff0c;所展露的“震撼”或简单粗暴的某种工业或工程学“组合堆叠”就不多说了&#xff0c;在这里还是主要还是想跟大家聊聊技术本身。 今天凌晨看到一篇媒体报道里有一种通俗工学上的类比…