使用 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,1); } } } </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 最后的效果如下
学习过程中,难免出错。如果您在阅读过程中遇到不太明白,或者有疑问。欢迎指正...联系邮箱crazyCodeLove@163.com
如果觉得有用,想赞助一下请移步赞助页面:赞助一下
分类:
前端学习小结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2016-07-28 java中异常和集合