当前位置:网站首页 > Vue.js开发 > 正文

5.VUE简单的组件间传值【父组件向子组件传值;子组件向父组件传值】

父组件向子组件传值

  • 父组件使用 子组件时通过v-bind:变量的形式将对应的值传给todo-item子组件
  •  子组件通过props接收从父组件传来的content参数

子组件向父组件传值

  • 数据在父组件中 父组件的数据决定子组件显示多少内容
  • 删除子组件:点击子组件时将点击内容传给父组件 让父组件改变list对应数据
  • 父组件的数据改变 子组件跟着变化
  • 子组件向父组件传值:通过$emit的方式向外触发事件 同时父组件监听该事件获取子组件传递过来的参数实现子组件向父组件传值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>TodoList</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <input type="text" v-model="inputValue">
    <button v-on:click="handleBtnClick">提交</button>
    <ul>
        <!-- 在父组件中创建子组件的同时通过v-on监听delete事件 delete事件被触发的时候就会执行父组件中的handleItemDelete方法【这个方法会拿到子组件传递过来的index的值】 -->
        <todo-item v-bind:content="item" v-bind:index="index" v-for="(item,index) in list" @delete="handleItemDelete"></todo-item>
    </ul>
</div>
<script>
// 局部组件
var TodoItem={
    // 子组件要使用index参数 在props中接收
    props:['content','index'],
    // 需求:点击某一内容时 将该内容删除【VUE不操作DOM 通过数据改变让视图发生变化】
    template:"<li @click='handleItemClick'>{
  
  
  
  
  
  
  
  {content}}</li>",
    methods:{
        // 
        handleItemClick(){
            // 点击子组件的时候 子组件向外触发delete事件同时将this.index作为参数传给父组件
            this.$emit("delete",this.index)
            // alert("click")
        }
    }
}
var app=new Vue({
    el:'#app',
    components:{
        TodoItem:TodoItem
    },
    data:{
        list:["第一课的内容","第二课的内容","第三课的内容"],
        inputValue:"",
    },
    methods:{
        handleBtnClick(){
            console.log(this.inputValue)
            this.list.push(this.inputValue)
            this.inputValue=""
        },
        handleItemDelete(index){
            // this.list=[]// 数据变化视图跟着变化:列表被清空
            // alert("delete")
            this.list.splice(index,1)
            alert(index)
        }
    }
})
</script>
</body>
</html>

到此这篇5.VUE简单的组件间传值【父组件向子组件传值;子组件向父组件传值】的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 6.VUE实例2024-11-30 22:45:06
  • 7.VUE实例的生命周期钩子2024-11-30 22:45:06
  • 8.VUE的模板语法2024-11-30 22:45:06
  • 9.VUE的计算属性 方法和侦听器2024-11-30 22:45:06
  • VUE:export default 和 export 的使用方式2024-11-30 22:45:06
  • 4.VUE前端组件化:全局组件及局部组件的使用2024-11-30 22:45:06
  • 3.VUE的MVVM设计模式2024-11-30 22:45:06
  • 2.VUE标签指令2024-11-30 22:45:06
  • 1.VUE方法实现Hello World及隔2秒钟更改content中的内容2024-11-30 22:45:06
  • VUE实现吸附侧边栏效果2024-11-30 22:45:06
  • 全屏图片