vue 组件 以及父子组件互相传值交互

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>veuIndex</title>
    <script type="text/javascript" src="js/vue.min.js"></script>
</head>
<body>
<div id="root">
    <div>
        <input v-model="inputValues"/>
        <button @click="handleSubmit">提交</button>
        <todo-item v-for="(item,index) of list" :key="index" :content="item" :index = "index" @delete = "handleDelete"></todo-item>
        <todo-item2></todo-item2>
    </div>
</div>
<script>


    //全局组件
    Vue.component('todo-item', {
        props: ['content', 'index'],//组件接受一个从外部传进来的content值,即:content的值
        template: '<li @click="componentClick">{{content}}{{index}}</li>',//{{content}}即props中定义的content,若不定义则无法使用
        methods: {
            componentClick: function () {
                this.$emit('delete',this.index);//用来对应@delete,然后@delete里的方法定义在父组件的merthods中
            }
        }
    });
    //局部组件
    var TodoItem = {
        template: '<li>itme2</li>'
    };

    new Vue({
        el: "#root",
        components: {
            'todo-item2': TodoItem
        },

        data: {
            list: [],
            inputValues: ''
        },
        methods: {
            handleSubmit: function () {
                this.list.push(this.inputValues);
                this.inputValues = '';
            },
            handleDelete : function (index) {
                this.list.splice(index,1);//删除对应下标开始的一项
            }
        }
    })
</script>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
Vue 3中,可以使用props和emit来实现父子组件之间的数据传递。 1. 使用props传递数据给子组件: 在父组件中使用子组件时,通过props属性将数据传递给子组件。在子组件中,可以通过props选项接收并使用这些数据。 父组件: ```vue <template> <div> <child-component :message="parentMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, data() { return { parentMessage: '父组件传递的消息' }; } }; </script> ``` 子组件: ```vue <template> <div>{{ message }}</div> </template> <script> export default { props: ['message'] }; </script> ``` 在上面的例子中,父组件通过`:message="parentMessage"`将`parentMessage`的值传递给了子组件的`message`属性。子组件通过`props: ['message']`声明了接收名为`message`的prop,并在模板中使用了该值。 2. 使用emit触发自定义事件传递数据给父组件: 在子组件中,可以通过使用`$emit`方法触发自定义事件,并传递数据给父组件。在父组件中,可以通过监听这些自定义事件来处理传递的数据。 子组件: ```vue <template> <button @click="sendMessage">发送消息给父组件</button> </template> <script> export default { methods: { sendMessage() { this.$emit('message-event', '子组件传递的消息'); } } }; </script> ``` 父组件: ```vue <template> <div> <child-component @message-event="handleMessage"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { components: { ChildComponent }, methods: { handleMessage(message) { console.log('父组件接收到的消息:', message); } } }; </script> ``` 在上面的例子中,子组件通过`this.$emit('message-event', '子组件传递的消息')`触发了名为`message-event`的自定义事件,并传递了消息给父组件。父组件通过`@message-event="handleMessage"`监听了这个自定义事件,并在`handleMessage`方法中接收到了传递的消息。 通过这两种方式,父子组件可以实现双向的数据传递。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值