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脚本不行了,换了一个新的. 组件化让我越来越感觉到框架的力量了 一 ...
随机推荐
- Node 框架接入 ELK 实践总结
本文由云+社区发表 作者:J2X 我们都有过上机器查日志的经历,当集群数量增多的时候,这种原始的操作带来的低效率不仅给我们定位现网问题带来极大的挑战,同时,我们也无法对我们服务框架的各项指标进行有效的 ...
- c#根据路径(url)下载图片
方法一:根据路径下载图片 1 /// <summary> /// 图片另存为 /// </summary> /// <param name="url" ...
- vue学习记录④(路由传参)
通过上篇文章对路由的工作原理有了基本的了解,现在我们一起来学习路由是如何传递参数的,也就是带参数的跳转. 带参数的跳转,一般是两种方式: ①.a标签直接跳转. ②点击按钮,触发函数跳转. 在上篇文章中 ...
- Android项目实战(五十四):zxing 生成二维码图片去除白色内边距的解决方案
目录:zxing->encoding->EncodingHandler类 中修改 createQRCode方法 private static final int BLACK = 0xff0 ...
- 安卓开发笔记(十一):SharedPrefences储存
一.利用SharedPrefences将数据储存于data.txt当中 package com.example.lenovo.studyittwo; import android.content.Br ...
- 【转载】 Sqlserver中查看自定义函数被哪些对象引用
Sqlserver数据库中支持自定义函数,包含表值函数和标量值函数,表值函数一般返回多个数据行即数据集,而标量值函数一般返回一个值,在数据库的存储过程中可调用自定义函数,也可在该自定义函数中调用另一个 ...
- SQL Server2008进程堵塞处理方法
进程堵塞处理方法: select * from sys.sysprocesses where blocked <>0 and DB_NAME(dbid)='GSHCPDB' ##查询堵 ...
- JetBrains 系列编译器 破解(idea,webstrom ,pycharm等)
第一步: 下载安装好Idea 或者Pychar ,安装好后不可运行 第二步: 安装完成之后不要立即运行,以下提供JetbrainsCrack的jar包来破解: jar包资源自行百度 下载之后,把Jet ...
- 空间数据可视化之ArcLayer详解
deck-overlay中 首先使用d3中的scaleQuantile将数据进行分类,scaleQuantile方法是d3中的一种数据分类方法(https://www.cnblogs.com/kids ...
- C#操作剪切板(Clipboard)
剪切板是Windows系统提供的功能,从我最早接触到的Windows 3.2版本开始,就一直带着了.以前使用C++的时候,是直接使用Windows API对其进行操作的,到了.NET下,在WinFor ...