vue的组件化运用(数据在两个组件互传,小问题总结)
一、vue的组件化应用
首先,知道有哪些相关的属性需要用到,再慢慢去理解,运用。
1.两个vue页面
2. slot占位符(可用可不用)
3.props内置属性
4.watch监听函数
5.import导入vue的功能
6.data的return里需要返回值需要放进去,如 data: ' ' 就行了
第一步,写好两个vue页面,我这里写的是dialog(对话框)的弹框运用
(1)子组件(dialog)基本代码如下
<template>
<el-dialog title="编辑规格" :visible.sync="sizeedit" @close="closingedit" width="30%"> <el-form :model="form" ref="form" label-width="80px" :rules="rules">
<el-form-item label="规格名称" prop="name">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="warning" size="small" @click="reset('form')">重置</el-button>
<el-button type="danger" size="small" @click="close">取消</el-button>
<el-button type="primary" size="small" @click="save('form')">保存</el-button>
</div>
</el-dialog>
</template>
data里
form: {}
sizeedit: false,
methods里
close () {
this.$emit('close-sizeedit', true)
},
reset () {
this.$refs.form.resetFields()
},
closingedit () {
this.$emit('close-sizeedit', true)
},
(2)父组件中
需要传递的值为id,通过函数传递id
handleEdit (id) {
console.log(id)
this.editId = id
this.sizeeditVisible = true
console.log(this.sizeeditVisible)
},
所以交流的值是editId
(3)两个页面基本完成的情况下,第一步,导入子组件,并且绑定传递的参数
import sizeedit from './sizeedit'
components: {
sizeedit
}
<sizeedit
:sizeedit-visible="sizeeditVisible"
@close-sizeedit="sizeeditVisible = false"
:edit-id="editId"/>
父组件,data里
editId: '',
sizeeditVisible: false,
子组件,要开始添加内置属性props和watch监听参数的变化,然后执行函数
props: {
'sizeeditVisible': Boolean,
'editId': String
}
watch: {
sizeeditVisible () {
this.sizeedit = this.sizeeditVisible
this.showEdit()
}
}
methods里
showEdit () {
console.log(this.editId)
let formData = new FormData()
formData.append('id', this.editId)
let config = {headers: {'Content-Type': 'multipart/form-data'}}
this.$http.post('/psi/base/edit', formData, config).then(res => {
console.log(this.form)
this.form.name = res.data.data.name
})
}
那么,基本只要父组件的id是确实在变化而且不是undefined【一般都是输入框变化的值】(判断方法,在相应函数下,console.log(id)),那么form里的规格名称就会改变。
组件套用,参数(String,Boolean)传递基本完成。
二、小问题总结
需要注意的几个小问题
1.关于form的
-1 this.$refs.form.resetFields() 是清空form数据的函数,但是前提,你的form属性不能少,form-item里props一定要有
-2 一定要有v-model属性,如文中的v-model = "form.name"
-3 在data里的数据,form需要帮name占位,这样子,你传递的值才会放进来
form: { name: '' }
2.关于子父组件的
-1 绑定数据时,一定要注意,父组件里需要定义editId,在data设置为空就行(注意在父组件用console.log检测是否id有值)
-2 子组件里,要有props和watch,用来监听你的值发生变化,从而相应做出动作
-3 在父组件引用子组件时,要记得用import导入,而且在components组件里,导入那个标签,从而才能在父组件的vue页面里放子组件的大标签
-4 注意传递的数据,在引用子组件标签时,绑定editId
3.关于敲代码找错的
-1 遇到问题,看控制台,点击右键,检查,然后在console里看是什么错
-2 如果console里没有报红,而又确实没有数据,那你就要考虑是函数功能并没有被调用,还是你没有把数据放进去,导致调用了也是空值
-3 学会找到出错的地方,比如你想实现那个功能,但是点击发现并没有发生函数功能,那么你就需要检查函数,以及相关的绑定值,多打打console.log,看是否都有值。
暂时这篇文章涉及到的就是String和Boolean类型的传值,晚点看下下次有没有空,再添加一下form的传递,就是Object,会比较蛋疼,但是和这里的写法是不一样的。
前端实习满3个月,vue边学边用1个半月,还不错,加油继续肝,有没有大神有其他前端的知识推荐我去看一下,或者说我自己最近抽点时间看下红客的知识,还有想要学服务器部署环境,将项目发布到自己域名上,榨油。
vue的组件化运用(数据在两个组件互传,小问题总结)的更多相关文章
- vue.js原生组件化开发(二)——父子组件
前言 在了解父子组件之前应先掌握组件开发基础.在实际开发过程中,组件之间可以嵌套,也因此生成父子组件. 父子组件创建流程 1.构建父子组件 1.1 全局注册 (1)构建注册子组件 //构建子组件chi ...
- vue组件化之模板优化及注册组件语法糖
vue组件化之模板优化及注册组件语法糖 vue组件化 模板 优化 在 https://www.cnblogs.com/singledogpro/p/12054895.html 这里我们对vue.js ...
- vue中子组件调用父组件里面的数据和方法 父组件调用子组件的数据和方法
1.子组件直接调用父组件的数据和方法 在父组件father,vue <template> <div> <!-- 父组件里面的数据 --> <p>父组件里 ...
- App 组件化/模块化之路——Android 框架组件(Android Architecture Components)使用指南
面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components ).为开发者更好的开发 App 提供了非常好的样本. ...
- 大话大前端时代(一) —— Vue 与 iOS 的组件化
序 今年大前端的概念一而再再而三的被提及,那么大前端时代究竟是什么呢?大前端这个词最早是因为在阿里内部有很多前端开发人员既写前端又写 Java 的 Velocity 模板而得来,不过现在大前端的范围已 ...
- vue04 组件化开发 Vue自动化工具
5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...
- vue项目中使用组件化开发
最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...
- 三. Vue组件化
1. 认识组件化 1.1 什么是组件化 人面对复杂问题的处理方式 任何一个人处理信息的逻辑能力都是有限的,所以当面对一个非常复杂的问题时我们不太可能一次性搞定一大堆的内容. 但是我们人有一种天生的能力 ...
- vue - Vue组件化编程
今天是对vue组件化的一个理解,最主要的单文件组件,然后就可以脚手架的学习了,本来昨晚就该上传的,但是用的那个上传博客园的Python脚本不行了,换了一个新的. 组件化让我越来越感觉到框架的力量了 一 ...
随机推荐
- RabbitMQ 消息队列 入门 第一章
RabbitMQ : 官网:https://www.rabbitmq.com/ GitHub:https://github.com/rabbitmq?q=rabbitmq 第一步安装: 点击 htt ...
- Unity 用ml-agents机器学习造个游戏AI吧(1)(Windows环境配置)
前言:以前觉得机器学习要应用于游戏AI,还远得很. 最近看到一些资料后,突发兴致试着玩了玩Unity机器学习,才发觉机器学习占领游戏AI的可能性和趋势. Unity训练可爱柯基犬Puppo 机器学习训 ...
- CSS引入本地字体与在线字体
有些时候为了强调某些文字,需要使用一些比较特别的字体,CSS中现在也可以比较方便的引入字体了,如下: /* 定义字体 */ @font-face{ font-family: Arista2; src: ...
- Win10常见问题记录
基本信息 记录我在使用win10过程中遇到的一些问题 我所使用的两个win10系统 Win10 企业版 1607(家里电脑) Win10 专业版 1806(公司电脑) win10 开启Sets 请问您 ...
- Linux 桌面玩家指南:01. 玩转 Linux 系统的方法论
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- web服务器之nginx和apache的区别
① apache属于重量级的服务器,nginx属于轻量级的服务器; 区别在于对一些功能的支持,比如: pathinfo,php模块方面 ② nginx抗高并发能力强. 由于nginx采用的是异步非阻 ...
- 03 JVM 从入门到实战 | 简述垃圾回收算法
引言 之前我们学习了 JVM 基本介绍 以及 什么样的对象需要被 GC ,今天就来学习一下 JVM 在判断出一个对象需要被 GC 会采用何种方式进行 GC.在学习 JVM 如何进行垃圾回收方法时,发现 ...
- webpack4升级指南
webpack4升级指南 鉴于图书项目编译速度极慢的情况(项目里面module太多了,编译慢很正常)且最近需求不多(很少出现的空挡期).所以我觉得搞一波webpack升级,看看有没有帮助.webpac ...
- 使用 Moq 测试.NET Core 应用 -- Mock 行为
第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...
- Docker 查看镜像信息
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 文章首发个人网站: https://ww ...