位置: IT常识 - 正文

【Vue】 组件封装(vue组件封装步骤)

发布时间:2024-01-16
【Vue】 组件封装 目录1 组件封装1.1 全局注册1.2 局部注册1.2.1 命名1.2.2 引用组件1.2.2.1 传统写法1.2.2.2 setup1.2.2.3 easycom1.3 父子组件间的数据传递1.3.1 子组件 data() 中设置数据1.3.2 父组件通过 prop 将数据传递给子组件1.3.3 子组件不能直接修改 prop 中的值1.3.4 子组件通过 emit 事件将子组件数据传递给父组件1.3.5 父组件通过 prop 把改变的值传到子组件中1.3 父子组件双向数据绑定1.3.1 v-model1 组件封装

推荐整理分享【Vue】 组件封装(vue组件封装步骤),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:封装vue组件,vue组件封装注意事项,vue组件封装视频,vue组件怎么封装,vue组件封装原则,vue 组件封装应该遵循 什么样的设计模式,vue中组件封装,vue组件封装步骤,内容如对您有帮助,希望把文章链接给更多的朋友!

vue 官网 组件基础

需要封装的情况组件复用模块化另: 修改子组件时,有时需重新运行才有效果1.1 全局注册<fzzz></fzzz>;import yyy from "./components/xxx.vue";Vue.component("zzz", yyy);yyy 不能有 -fzzz 只与 zzz 有关// main.jsimport inputSearch from "./components/inputSearch.vue";Vue.component("inputSearch", inputSearch); // 3 种, i 开头Vue.component("input-search", inputSearch); // <input-search></input-search>Vue.component("input-Search", inputSearch); // <input-Search></input-Search>Vue.component("InputSearch", inputSearch); // 6 种Vue.component("Input-search", inputSearch); // <Input-search></Input-search>Vue.component("Input-Search", inputSearch); // <Input-Search></Input-Search>// main.jsimport InputSearch from "./components/inputSearch.vue";Vue.component("inputSearch", InputSearch); // 3 种, i 开头Vue.component("input-search", InputSearch); // <input-search></input-search>Vue.component("input-Search", InputSearch); // <input-Search></input-Search>Vue.component("InputSearch", InputSearch); // 6 种Vue.component("Input-search", InputSearch); // <Input-search></Input-search>Vue.component("Input-Search", InputSearch); // <Input-Search></Input-Search>1.2 局部注册1.2.1 命名

建议使用大驼峰,因为这提高了模板的可读性,能帮助我们区分 Vue 组件和原生 HTML 元素。

<fyyy></fyyy>;import yyy from "@/components/xxx.vue";components: { yyy;}yyy 不能有 -fyyy 只与 components:{} 的 yyy 有关<inputSearch></inputSearch><input-search></input-search><input-Search></input-Search>import inputSearch from "@/components/inputSearch.vue"import inputSearch from "@/components/input-search.vue"import inputSearch from "@/components/input-Search.vue"import inputSearch from "@/components/InputSearch.vue"import inputSearch from "@/components/Input-search.vue"import inputSearch from "@/components/Input-Search.vue"components: { inputSearch }<InputSearch></InputSearch><Input-search></Input-search><Input-Search></Input-Search><inputSearch></inputSearch><input-search></input-search><input-Search></input-Search>import InputSearch from "@/components/inputSearch.vue"import InputSearch from "@/components/input-search.vue"import InputSearch from "@/components/input-Search.vue"import InputSearch from "@/components/InputSearch.vue"import InputSearch from "@/components/Input-search.vue"import InputSearch from "@/components/Input-Search.vue"components: { InputSearch }1.2.2 引用组件【Vue】 组件封装(vue组件封装步骤)

uniapp 官网 引用组件

1.2.2.1 传统写法child.vue导入 : import child from '@/components/child.vue';局部注册 : components: { child },使用 : <child></child>

1.2.2.2 setupchild.vue<script setup></script>导入 : import child from '@/components/child.vue';使用 : <child></child>

1.2.2.3 easycomchild.vue 组件放在项目的 components 文件夹下,符合 components/组件名称/组件名称.vue 的目录结构,可直接引用使用 : <child></child>

1.3 父子组件间的数据传递父组件通过 prop 将数据传递给子组件子组件通过 emit 事件将子组件数据传递给父组件子组件不能直接修改 prop 中传给父组件的值1.3.1 子组件 data() 中设置数据// 子组件<view>{{ name }}</view>// data()data() {return {name: 'xxx'}},// 父组件<child></child>1.3.2 父组件通过 prop 将数据传递给子组件// 子组件<view>{{ name }}</view>// propsprops: {name: {type: String,default: ''},},// 父组件<child name="xxx"></child>1.3.3 子组件不能直接修改 prop 中的值// 子组件<view @click="getValue">{{ name }}</view>// propsprops: {name: {type: String,default: ''},},methods:{getValue() {this.name = "yyy"; // 报错}}// 父组件<child name="xxx"></child>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PePniYhx-1662716305299)(app_files/2.jpg)]

1.3.4 子组件通过 emit 事件将子组件数据传递给父组件this.$emit(“fun1”, param); //其中 fun1 为父组件定义函数,param 为需要传递参数// 子组件<view @click="getValue">{{ name }}</view>// data()、methodsdata() {return {name: 'xxx'}},methods: {getValue() {this.$emit('change', this.name)}}// 父组件<child @change="getName"></child>// methodsmethods: {getName(value) {console.log(value);}}1.3.5 父组件通过 prop 把改变的值传到子组件中// 子组件<view @click="getValue">{{ name }}</view>//props: {undataName: {type: String,default: ''},},data() {return {name: ''}},methods: {getValue() {this.$emit('change', this.name)this.name = this.undataName;}}// 父组件<child @change="getName" undataName="yyy"></child>// methodsmethods: {getName(value) {console.log(value);}}1.3 父子组件双向数据绑定1.3.1 v-model

Vue 父子组件如何双向绑定传值 Vue 官网 表单输入绑定

<input v-model="text"> 相当于 <input :value="text" @input="event => text = event.target.value">

父组件使用子组件时,直接用 v-model 双向绑定 <child v-model="name"></child><!-- 子组件 --><template> <input :value="name" @input="onInput" /></template><script> export default { model: { prop: "name", //这个字段,是指父组件设置 v-model 时,将变量值传给子组件的 name event: "getName", //这个字段,是指父组件监听 getName 事件 }, props: { name: { type: String, default: "", }, }, methods: { onInput(e) { this.$emit("getName", e.target.value); console.log(e.target.value); }, }, };</script>// 父组件<template> <view> <child v-model="name"></child> </view></template><script> import child from "@/components/child.vue"; export default { components: { child, }, data() { return { name: "xxx", }; }, watch: { name(value) { console.log(value, "--value"); }, }, };</script>
本文链接地址:https://www.jiuchutong.com/zhishi/297771.html 转载请保留说明!

上一篇:json-server|0编码实现REST API(json_server)

下一篇:【GPT4】微软 GPT-4 测试报告(1)总体介绍(微软 gcr)

  • 怎样解除拼多多自动扣款(怎样解除拼多多快捷支付功能)

    怎样解除拼多多自动扣款(怎样解除拼多多快捷支付功能)

  • 小米手机抢红包设置方法(小米手机抢红包神器)

    小米手机抢红包设置方法(小米手机抢红包神器)

  • 奇迹战士怎么加点(奇迹战士怎么加点血最多)

    奇迹战士怎么加点(奇迹战士怎么加点血最多)

  • 金立s10是不是双卡(金立s10是不是双卡双待)

    金立s10是不是双卡(金立s10是不是双卡双待)

  • 抖音的商品分享功能找不到(抖音的商品分享功能怎么使用)

    抖音的商品分享功能找不到(抖音的商品分享功能怎么使用)

  • 探探的活跃度准不准(探探的活跃度是什么意思)

    探探的活跃度准不准(探探的活跃度是什么意思)

  • 发送4接收4无法访问目标主机(已发送4已接收4)

    发送4接收4无法访问目标主机(已发送4已接收4)

  • dc12v可以接220v的电吗(dc12v怎么接电源)

    dc12v可以接220v的电吗(dc12v怎么接电源)

  • 电子秤unit是什么意思(电子秤显示uns)

    电子秤unit是什么意思(电子秤显示uns)

  • 苹果8plus基带是高通还是英特尔(苹果8plus基带是什么的)

    苹果8plus基带是高通还是英特尔(苹果8plus基带是什么的)

  • 为什么快手极速版绑定不了微信(为什么快手极速版老是跳广告)

    为什么快手极速版绑定不了微信(为什么快手极速版老是跳广告)

  • 苹果手机怎么下载视频到手机(苹果手机怎么下一行打字)

    苹果手机怎么下载视频到手机(苹果手机怎么下一行打字)

  • iphone11三款区别(iphone11的三款区别)

    iphone11三款区别(iphone11的三款区别)

  • 微信如何取消别人的赞(微信如何取消别人点赞提醒)

    微信如何取消别人的赞(微信如何取消别人点赞提醒)

  • cat是指计算机的什么(cat计算机含义的什么?)

    cat是指计算机的什么(cat计算机含义的什么?)

  • realme x2支持otg连接吗

    realme x2支持otg连接吗

  • iphone热点低数据怎么关(iPhone热点低数据怎么关)

    iphone热点低数据怎么关(iPhone热点低数据怎么关)

  • 微信怎么开启人脸支付(微信怎么开启人脸识别登录)

    微信怎么开启人脸支付(微信怎么开启人脸识别登录)

  • 25分钟的视频发送微信(25分钟视频怎么发)

    25分钟的视频发送微信(25分钟视频怎么发)

  • iphone11支持5g网络吗(iphone11可支持5g)

    iphone11支持5g网络吗(iphone11可支持5g)

  • 华为手机哪款有nfc功能吗(华为手机哪款有nfc功能)

    华为手机哪款有nfc功能吗(华为手机哪款有nfc功能)

  • 快手小剧场怎么进(快手小剧场怎么下载不了)

    快手小剧场怎么进(快手小剧场怎么下载不了)

  • 苹果xs max能同时上两个微信吗

    苹果xs max能同时上两个微信吗

  • iphonexr可以用ipad充电器充电吗(iphonexr能用iphone12的手机壳吗)

    iphonexr可以用ipad充电器充电吗(iphonexr能用iphone12的手机壳吗)

  • 快手能设置特别关注吗(快手设置特别关注怎么取消)

    快手能设置特别关注吗(快手设置特别关注怎么取消)

  • 苹果手机的望远镜功能在哪里(苹果手机的望远镜功能)

    苹果手机的望远镜功能在哪里(苹果手机的望远镜功能)

  • beremote.exe进程是什么文件 beremote进程信息查询(protect.exe进程)

    beremote.exe进程是什么文件 beremote进程信息查询(protect.exe进程)

  • 股票印花税怎么交
  • 委托加工应税消费品收回后直接销售
  • 民非企业是否可以盈利
  • 已认证发票对方红冲应该怎么做账
  • 多开票要交多少税
  • 房地产开发的会计处理
  • 物业管理水电费税率
  • 企业购车支付购置税流程
  • 房地产企业被收购报表处理
  • 房地产企业如何预缴土地增值税
  • 期间费用年末有余额吗
  • 公司老板个人卡收款 出纳有责任吗
  • 账本印花税怎么做账
  • 固定资产的知识
  • 计入在建的工资会计科目
  • 办公室购置空调的词语
  • 2020年安装费的增值税税率是多少
  • 行政事业单位会计基础工作规范
  • 免税行业企业
  • 工程项目管理人员任命书
  • 租个人房屋办公怎么租
  • 五联折叠票和两联折叠票的区别
  • 木制手链品种
  • 工会经费,职工福利费,教育经费的扣除标准
  • 演出收入怎样做会计分录
  • 结转本月主营业务收入800000元,营业外收入2500元
  • 电脑耳机插上还是外放,重启就可以
  • 未分配收益怎么取出
  • 进程aissca.exe
  • vue适配pc
  • php未定义数组下标0
  • 房地产企业增值税扣除土地成本
  • 复式记账法含义
  • php模板源码
  • 顺流交易的会计处理
  • thinkphp6验证
  • 员工报销车辆费怎么处理
  • 购买研发设备可以直接列入研发开支不
  • 数据源suspended
  • 购买一台电脑2400元贵吗
  • 公司账户转钱到私人账户要扣税吗
  • 代收电费增值税品目
  • 盈余公积弥补亏损不影响留存收益
  • 计提减值准备是利空吗
  • 个人所得税相关会计分录
  • 太阳能发电的开发条件
  • 收到退回的文化事业建设费会计分录
  • 电子税务局是指什么意思
  • 餐厅打包盒收费标准通知
  • 共管账户取钱需要多久到账
  • 2018城镇医疗保险缴费
  • 工会经费可以在以后年度扣除吗
  • 出口退税包括
  • 公司注销退回投资款如何账务处理
  • 质量问题扣款怎么开票
  • 一般纳税人注销公司流程2023
  • 根据《增值税暂行条例》的规定,适用9
  • 2020年工伤赔偿标准表
  • 高新技术企业认定管理办法
  • mysql闪退怎么回事
  • mysql group order
  • 怎么进入bios设置界面win10
  • xpcpu占用100
  • win安装ie8
  • cocos creator 发布web
  • cocos 2d x
  • 批处理常用命令
  • linux中tar命令
  • jquery mobile实例
  • win安装nodejs
  • 移动端web开发需要学什么
  • JavaScript 事件对象介绍
  • 探寻Javascript执行效率问题
  • javascript的理解
  • python百分数运算怎么写
  • 地方税务局部门有哪些
  • 报税的资格
  • 个体税务怎么查询
  • 电子税务局财务制度备案在哪
  • 拆迁户契税减免政策有时间限制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号