使用 vue-cli 实现组件之间数据交换
1 使用脚手架工具用 webpack 模板初始化项目,用 webstorm 打开项目。src 目录下是要编写的源文件。
main.js 文件 是主入口文件,
在es6语法中,:function(){}可以简写为(){}
在vue-cli中定义data时,不再是对象,而是以function函数的形式返回对象
template模板下只能有一个子节点,否则会报错
我将 App.vue 改名为TodoList.vue 因此修改 main.js 文件,
import TodoList from './TodoList'
...
components: {
todoList:TodoList
},
main.js 文件内容如下
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import TodoList from './TodoList' Vue.config.productionTip = false /* eslint-disable no-new */
new Vue({
el: '#app',
components: {
todoList:TodoList
},
template: '<todoList></todoList>'
})
2 组件的属性内容现在写到 export default{} 对象中
在 vue 文件中将模板放在 <template> 标签下
将脚本内容放到 <script> 标签下
TodoList 组件内容如下
<template>
<div>
<input v-model="inputValue"/>
<button @click="addItem">提交</button>
<ul>
<todo-item
v-for="(item, index) of todoList"
:key="index" :content="item"
:index="index"
@deleteItem="deleteItem"
> </todo-item> </ul>
</div>
</template> <script>
import TodoItem from './components/TodoItem' export default {
components: {
'todo-item':TodoItem
},
data () {
return {
inputValue: '',
todoList: []
}
},
methods:{
addItem () {
this.todoList.push(this.inputValue);
this.inputValue= '';
},
deleteItem (index) {
this.todoList.splice(index,);
}
} }
</script> <style>
</style>
在该组件中引用了 TodoItem 组件。在本组件中需要引入该组件, 使用 components 属性,引用一个对象。该对象的键是在该组件的名称,值是引用的组件名称。
对于 components
对象中的每个属性来说,其属性名就是自定义元素的名字,其属性值就是这个组件的选项对象。
3 子组件写法和上面一样
TodoItem.vue 文件内容如下
<template>
<li v-text="content" @click="deleteItem"></li>
</template> <script>
export default {
props:['content','index'],
methods: {
deleteItem () {
this.$emit('deleteItem',this.index); }
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
4 父子组件之间传递消息的方式和之前的博文一致。参看
5 最后的效果如下
使用 vue-cli 实现组件之间数据交换的更多相关文章
- Vue中独立组件之间数据交互
独立组件之间数据交互:通过自定义事件 组件A中的[数据],传递给组件B 1.创建组件A,组件B 2.组件B在实例创建完成时就开始监听事件[等待接收数据]:钩子 3.组件A中触发事件,发送数据 注意:接 ...
- 面向UI编程:ui.js 1.1 使用观察者模式完成组件之间数据流转,彻底分离组件之间的耦合,完成组件的高内聚
开头想明确一些概念,因为有些概念不明确会导致很多问题,比如你写这个框架为什么不去解决啥啥啥的问题,哎,心累. 什么是框架? 百度的解释:框架(Framework)是整个或部分系统的可重用设计,表现为一 ...
- 【Vue课堂】Vue.js 父子组件之间通信的十种方式
这篇文章介绍了Vue.js 父子组件之间通信的十种方式,不管是初学者还是已经在用 Vue 的开发者都会有所收获.无可否认,现在无论大厂还是小厂都已经用上了 Vue.js 框架,简单易上手不说,教程详尽 ...
- 浅入深出Vue:子组件与数据传递
上一篇了解了组件的概念及在使用中需要注意的地方.在面对单个组件逻辑复杂需要拆分时,难免会遇到父子组件之间数据传递的问题.那么我们来了解一下在父子组件之间进行数据传递时需要遵循哪些约定,以及要注意哪些问 ...
- vue.js 同级组件之间的值传递方法(uni-app通用)
vue.js 兄弟组件之间的值传递方法 https://blog.csdn.net/jingtian678/article/details/81634149
- Vue的自定义组件之间的数据传递
一,父级传向子级 1,在子级的属性中添加props:['myname',......],参数可以传多个,看具体而定: 2,在父级data中定义好需要传递的变量数据,例如name:"rose& ...
- Vue组件之间数据交互与通信
Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传 ...
- 8.【nuxt起步】-vue组件之间数据交互
那么现在问题来了,我现在是在index.vue获取了服务端的数据,怎么传值到maincontent.vue?当然你也可以把获取数据放在maincontent.vue,但假如有些数据同时在header, ...
- vue组件之间数据的传递
父子组件通信 父组件向子组件传递数据: 1.通过子组件的 props 选项声明它期待获得的数据,用以接收父组件传过来的值. 2.在子组件标签中使用子组件props中创建的属性 3.父组件中注册子组件 ...
随机推荐
- PYQT实现简单的浏览器功能
主要的类 QMainWindow 提供一个有菜单条.锚接窗口(例如工具条)和一个状态条的主应用程序窗口. http://www.kuqin.com/qtdocument/qmainwindow.htm ...
- python乱码问题之爬虫篇
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 167: illegal multibyte sequence 使 ...
- MapReduce任务参数调优(转)
http://blog.javachen.com/2014/06/24/tuning-in-mapreduce/ 本文主要记录Hadoop 2.x版本中MapReduce参数调优,不涉及Yarn的调优 ...
- vue $options 获取自定义属性
说明: https://cn.vuejs.org/v2/api/#vm-options 用于当前 Vue 实例的初始化选项.需要在选项中包含自定义属性时会有用处. element-ui代码中经常定义组 ...
- 给go程序添加命令行参数
操作系统: CentOS 6.9_x64 go语言版本: 1.8.3 问题描述 需要应用程序根据不同的配置文件访问不同的服务器,希望程序启动时可以指定配置文件. 解决方案 package main i ...
- mysql可视化工具
比较mysql manager lite 和phpmyadmin: 1.phpmyadmin有中文界面, 可以快速入门,但友好性远没有SQL Manager Lite强大 2.SQL Manager ...
- Qt5.9静态库编译VS2015-x64
不多说. 编译配置参数如下 configure.bat -static -no-openssl -release 不支持OpenSSL,也没有安装各个数据库的Driver,所以数据库方面也只支持了SQ ...
- 转:CMake 使用方法
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的 ...
- 数组问题常用的O(N)算法:单调队列
求max(a)<min(b)的区间个数 给定两个长度都为N的整型数组a[N]和b[N],求满足如下条件的闭区间个数:在区间[l,r]上,a中的任意元素都比b中的任意元素小. 这个问题是O(N)复 ...
- Android开发环境——连接驱动ADB相关内容汇总
Android开发环境将分为SDK相关内容.Eclipse ADT相关内容.模拟器AVD相关内容.调试器DDMS相关内容.日志LogCat相关内容.连接驱动ADB相关内容.内存泄露检测工具MAT相关 ...