vue2 双向绑定

Posted 迷失之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue2 双向绑定相关的知识,希望对你有一定的参考价值。

  代码出处https://juejin.im/entry/5843abb1a22b9d007a97854c

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!--开关组件--> 
        <switchbtn :result="result" on-result-change="onResultChange" ></switchbtn>
        <!--外部控制-->
        <input type="button" value="change" @click="change">
    </div>

    <script src="https://vuejs.org/js/vue.js"></script>
    <script>
        //开关组件代码
        Vue.component("switchbtn",{
            template:"<div @click=‘change‘>{{myresult ? ‘开‘:‘关‘}}</div>",
            props:["result"],
            data:function() {
                return {
                    myresult : this.result
                }
            },
            methods:{
                change(){
                    this.myresult=!this.myresult;
                }
            },
            watch: {
                result(val) {
                    this.myresult = val;//新增result的watch,监听变更并同步到myResult上
                },
                myresult(val){
                    //xxcanghai 小小沧海 博客园
                    this.$emit("on-result-change",val);//③组件内对myResult变更后向外部发送事件通知
                }
            },
        });

        //调用组件
        new Vue({
            el: "#app",
            data:{
                result:true//开关状态数据
            },
            methods:{
                change(){
                    this.result=!this.result;
                },
                onResultChange(val){
                    this.result=val;//④外层调用组件方注册变更方法,将组件内的数据变更,同步到组件外的数据状态中
                }
            }
        });
    </script>    
</body>
</html>

 

以上是关于vue2 双向绑定的主要内容,如果未能解决你的问题,请参考以下文章

vue2 双向绑定

如何在Vue2中实现组件props双向绑定

基于Vue2.0数据双向绑定原理-详解

理解VUE2双向数据绑定原理和实现

面试题打卡第七天(vue2 vue3 原理篇)- 双向数据绑定

vue2.x双向数据绑定原理