Vue 及双向数据绑定 Vue事件介绍 以及Vue中的ref获取dom节点

<template>
  <div id="app">
    <h1>{{ msg }}</h1>

    <input type="text" v-model="msg" />

    <button v-on:click="getMsg()">获取表单里面的数据</button>

    <button v-on:click="setMsg()">设置表单里面的数据</button>

    <hr>
    <br>
    <input type="text"  ref="userinfo" />

    <button v-on:click="getInputValue()">获取第二个表单里面的数据</button>

    <div ref="box">我是一个box</div>
  </div>
</template>

<script>
/*
  双向数据绑定 MVVM Vue就是一个MVVM框架
  M model
  V view

  MVVM model改变会影响view,view反过来会影响model
  双向数据绑定必须在表达里面使用
 */

export default {
  name: 'app',
  data () {
    return {
      msg: '双向数据绑定'
    }
  }, methods: {//自定义方法
      getMsg(){
        //alert("vue方法执行了");
        //方法里面获取data的数据
        alert(this.msg)
      },
      setMsg(){
         this.msg="我是改变后的数据";
      },
      getInputValue(){
        //获取ref定义的dom节点
        console.log(this.$refs.userinfo);

        //获取节点的value
        alert(this.$refs.userinfo.value);

        //改变box颜色
        this.$refs.box.style.background='red';
      },
    }
}
</script>

<style lang="scss">

</style>

运行截图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2,可以使用`v-bind`和`v-on`指令来实现数据双向绑定事件绑定。在JS,可以使用`appendChild`和`createElement`方法来插入DOM节点。 以下是一个例子,假设我们需要在页面插入一个按钮,并且当点击按钮时,能够改变页面数据: HTML代码: ```html <div id="app"> <button id="my-btn">Click Me</button> </div> ``` JS代码: ```javascript var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' }, mounted: function() { var btn = document.getElementById('my-btn'); var self = this; btn.addEventListener('click', function() { self.message = 'You clicked the button!'; }); } }); ``` 上述代码,我们首先创建了一个Vue实例,并将其挂载到id为`app`的元素上。在`data`选项,我们定义了一个`message`属性,用于存储页面数据。在`mounted`钩子函数,我们获取到id为`my-btn`的按钮元素,并使用`addEventListener`方法为其绑定了一个`click`事件。在事件处理函数,我们将`message`属性的修改为`You clicked the button!`,这样就能实现页面数据双向绑定事件绑定了。 当然,以上代码没有使用Vue提供的`v-bind`和`v-on`指令,这是因为在插入DOM节点时,Vue的模板编译器无法识别这些动态创建的节点。如果需要使用`v-bind`和`v-on`指令,可以使用Vue提供的`createElement`方法来创建元素节点,然后使用`$mount`方法将其挂载到页面上。例如: ```javascript var app = new Vue({ data: { message: 'Hello Vue!' }, mounted: function() { var btn = this.$refs.myBtn; var self = this; btn.addEventListener('click', function() { self.message = 'You clicked the button!'; }); }, render: function(createElement) { return createElement('div', [ createElement('button', { attrs: { id: 'my-btn' }, ref: 'myBtn', on: { click: this.handleClick } }, 'Click Me') ]); }, methods: { handleClick: function() { this.message = 'You clicked the button!'; } } }); app.$mount('#app'); ``` 上述代码,我们首先创建了一个Vue实例,并在`render`方法使用`createElement`方法来创建了一个按钮元素。在按钮元素的`on`属性,使用了`handleClick`方法来处理`click`事件。在`mounted`钩子函数,我们获取到按钮元素,并使用`addEventListener`方法为其绑定了一个`click`事件。在事件处理函数,我们将`message`属性的修改为`You clicked the button!`,这样就能实现数据双向绑定事件绑定了。最后,使用`$mount`方法将Vue实例挂载到页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值