• Vue----数据绑定


    响应式数据:只能由代码改变UI或者只能由UI改变代码

       <div id="app">

            <button @click="fn">change1button>

            <h1 v-html="title">h1>

            <p>{{msg}}p>

           

        div>

        <script>

            var vm=new Vue({

                el:"#app",

                data:{

                    title:"hello",

                    msg:"666"

                },

                methods:{

                    fn(){

                        this.title=this.msg

                    }

                }

            })          

        script>

     

     

    双向数据绑定:代码改变UI,UI也能改变代码

    什么是双向数据绑定?

    如果变量变了也会让页面刷新(DOM操作让页面改变)

    如果用户操作DOM,改变了页面,反之也会让数据容器中的数据的值改变

    双向数据绑定的实现: 2种方式

    1.自己实现,vue可以自己实现(没必要) 微信开发可以自己实现(只能自己实现)利用input事件,用户交互的时候,获取用户输入的值,然后把值绑定到data容器中

        <div id="app">

            <h1 id="title">h1>

            <p id="msg">p>

        div>

        <script>

            function MyVue(obj){

                let _vm={}

                //劫持

                let arr=Object.keys(obj.data)

                for(let i=0;i<arr.length;i++){

                     Object.defineProperty(_vm,arr[i],{

                         set(v){

                             //劫持

                             obj.data[arr[i]]=v

                             //响应-刷新页面

                             let title=document.querySelector(obj.el+" #title")

                             let msg=document.querySelector(obj.el+" #msg")

                             title.innerHTML=_vm["title"]

                             msg.innerHTML=_vm["msg"]

                         },

                         get(){

                             return obj.data[arr[i]]

                         }

                     })

                     _vm[arr[i]]=obj.data[arr[i]]

                     

                }

               

                                               

                return _vm

            }

           

            var vm=new MyVue({

                el:"#app",

                data:{

                    title:"mytitle66666",

                    msg:"mymsg666666",

                    obj:{age:10,name:"karen"},

                    arr:[10,230,5]

                }

            })

        script>

     

    2.系统指令:v-model

       <div id='app'>

            <input type="text" v-model="value">

            <button @click="look">获取数据button>

            <input type="text" :value="msg">

            <button @click="look2">获取数据二button>

        div>

        <script>

            new Vue({

                el:'#app',

                data: {

                    value:"123456",

                    msg:"12345678"

                },

                methods: {

                    look(){

                        console.log(this.value)

                    },

                    look2(){

                        console.log(this.msg)

                    }

                }

        })

        script>

     

     

  • 相关阅读:
    springboot3 一些听课笔记(1)
    ubuntu 22.04安装cuda、cudnn、conda、pytorch
    创建vue项目教程
    开发工具:推荐一款非常好用的SSH客户端WindTerm
    uniApp 引入iview
    鼠标移入显示下拉框
    【医学分割】Medical Image Segmentation Using Deep Learning: A Survey
    AntV/G2 柱状图+折线图双轴图表
    背包问题学习笔记-分组背包
    VS Code调试C代码
  • 原文地址:https://blog.csdn.net/cjx177187/article/details/126796852