位置: IT常识 - 正文

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

编辑:rootadmin
【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)

  • 全民K歌怎么一键分享到微信状态(全民k歌怎么一半歌词一半视频)

    全民K歌怎么一键分享到微信状态(全民k歌怎么一半歌词一半视频)

  • 苹果13怎么关闭高刷(苹果13怎么关闭运行程序)

    苹果13怎么关闭高刷(苹果13怎么关闭运行程序)

  • steam怎么改手机号(steam怎么改手机号原来手机号用不了了)

    steam怎么改手机号(steam怎么改手机号原来手机号用不了了)

  • 荣耀x10max的处理器是什么型号(荣耀x10max手机处理器怎样)

    荣耀x10max的处理器是什么型号(荣耀x10max手机处理器怎样)

  • 微信分身是必须两个手机号码吗(微信分身必须有两个电话号码)

    微信分身是必须两个手机号码吗(微信分身必须有两个电话号码)

  • 抖音极速和抖音短视频区别(抖音极速和抖音火山有什么区别)

    抖音极速和抖音短视频区别(抖音极速和抖音火山有什么区别)

  • 把一个人拉黑了还能收到信息吗(把一个人拉黑了能看到朋友圈吗)

    把一个人拉黑了还能收到信息吗(把一个人拉黑了能看到朋友圈吗)

  • 高危漏洞有必要修复吗(一个高危漏洞多少钱)

    高危漏洞有必要修复吗(一个高危漏洞多少钱)

  • 华为手机微信通话怎么录音(华为手机微信通知不提醒,点进去才提醒)

    华为手机微信通话怎么录音(华为手机微信通知不提醒,点进去才提醒)

  • 苹果有空调遥控器吗(苹果有空调遥控软件吗)

    苹果有空调遥控器吗(苹果有空调遥控软件吗)

  • 什么软件可以提取视频里的音乐(什么软件可以提取音乐)

    什么软件可以提取视频里的音乐(什么软件可以提取音乐)

  • 呼吸灯原理(定时器实现呼吸灯原理)

    呼吸灯原理(定时器实现呼吸灯原理)

  • 屏幕2340x1080是多大(屏幕2340x1080是什么意思)

    屏幕2340x1080是多大(屏幕2340x1080是什么意思)

  • portal00a是华为什么手机(potal00a华为手机型号)

    portal00a是华为什么手机(potal00a华为手机型号)

  • 快手直播伴侣有什么用(快手直播伴侣有回音怎么办)

    快手直播伴侣有什么用(快手直播伴侣有回音怎么办)

  • oppok3充电多久充满(oppok3充电要多久)

    oppok3充电多久充满(oppok3充电要多久)

  • 滴滴司机绕路怎么处理(滴滴司机绕路怎么申诉范文)

    滴滴司机绕路怎么处理(滴滴司机绕路怎么申诉范文)

  • mcsoniho是什么牌子(mcrjoon是什么牌子)

    mcsoniho是什么牌子(mcrjoon是什么牌子)

  • 微信怎么能注销账号吗(微信怎么能注销手机号)

    微信怎么能注销账号吗(微信怎么能注销手机号)

  • 微信声音设置在哪里调(微信声音设置在哪里调华为)

    微信声音设置在哪里调(微信声音设置在哪里调华为)

  • ppor17恢复出厂设置在哪里(ppbox1s恢复出厂设置)

    ppor17恢复出厂设置在哪里(ppbox1s恢复出厂设置)

  • 手机qq定时说说在哪删(手机qq定时说说怎么删)

    手机qq定时说说在哪删(手机qq定时说说怎么删)

  • 在Mac中如何修改iTunes的备份路径  在Mac中修改iTunes备份路径的教程(终于找到修改mac的方法了!)

    在Mac中如何修改iTunes的备份路径 在Mac中修改iTunes备份路径的教程(终于找到修改mac的方法了!)

  • 电脑如何修改硬盘模式?计算机硬盘模式更改bios设置教程(电脑如何修改硬盘模式)

    电脑如何修改硬盘模式?计算机硬盘模式更改bios设置教程(电脑如何修改硬盘模式)

  • 【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组 | 精品题解(蓝桥杯2021出结果)

    【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 1 期-大学组 | 精品题解(蓝桥杯2021出结果)

  • 高德地图的2种引入方式(高德地图的2种导航方式)

    高德地图的2种引入方式(高德地图的2种导航方式)

  • 商贸企业购销混凝土税率怎么选择
  • 个人股权转让如何纳税
  • 什么叫做增值税进项税额
  • 小规模差额征税全额开票和差额开票
  • 报价含税和不含税哪个划算
  • 一般纳税人广告
  • 环保设备折旧年限和残值率
  • 小规模核定征收需要做账吗
  • 个人所得税专项扣除子女教育标准
  • 销项税额特殊销售额的处理方式
  • 支付外汇货款
  • 企业年金需要缴纳个人所得税吗
  • 外出经营预缴税
  • 企业期货投资收益何时记账的
  • 资产负债表越来越少了是怎么回事
  • 小规模季度超过30万怎么填报增值税
  • 固定资产取得方式A04代号
  • 高杠杆资金是什么意思
  • 分期付款的车怎么做分录
  • 向其他企业捐赠现金所有者权益
  • 已进行账务处理怎么处理
  • 审计调整后如何入账
  • 出口50万货物退多少税
  • 收据是否当月入帐
  • 税收筹划有哪些特点?
  • 个税少扣了怎么账平掉
  • 专业服务业政策
  • window10拖动窗口的手势
  • 电脑删文件需要授权
  • 公司外币账户怎么登录
  • mysql的minus
  • win101903怎么查看
  • 预付款指的是
  • amr文件怎么转换为mp3
  • url示例
  • codeigniter 教程
  • 暂估入库的税务分录
  • 企业向个人提供咨询服务
  • 康沃尔郡的大学
  • thinkphp demo
  • 减免税费是几级科目
  • vue中过滤器有什么作用及详解
  • 浅析中国式现代化的理论价值与现实意义
  • linux php redis扩展
  • js怎么存储数据
  • 出让土地的土地出让金与抵押权
  • mysql临时表什么时候销毁
  • 小规模纳税人免增值税的账务处理
  • sql server数据表
  • 给个体工商户打工受伤怎么办
  • 小规模纳税人会自动转为一般纳税人
  • 无形资产175加计扣除例题
  • 小规模纳税人缴税的分录
  • 公司给的佣金需要上多少税
  • 制造费用会计科目
  • 企业为什么一定要给员工缴纳社保
  • 开票信息中电话怎么填
  • centos 7安装教程
  • mysql数据库详解
  • sqlserver 临时表 准备
  • linux下mysql开启远程访问权限 防火墙开放3306端口
  • windows server 2008 r2激活密钥
  • server2008开机启动项设置
  • 怎么用ubuntu
  • ubuntu中如何设置克隆屏
  • win8升win8.1
  • mac safari浏览历史
  • 怎么提高局域网安全
  • win8.1 ie浏览器
  • 安卓应用程序数据
  • 游戏输入法安卓
  • javascript基于什么的语言
  • MVC Ajax Helper或Jquery异步加载部分视图
  • android 发短信
  • javascript面向对象精要pdf下载
  • python环境及基础语法
  • 江苏优抚对象
  • 财政资金存在问题
  • 智能财税代理实务实训过程
  • 营业税改征增值税对哪些行业影响最大
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设