美文网首页
[vue3快速入门] 2.vue如何处理用户输入

[vue3快速入门] 2.vue如何处理用户输入

作者: 林哥学前端 | 来源:发表于2021-09-09 16:20 被阅读0次

处理用户输入,也可以说与用户交互,比如说用户点击按钮后,我们的页面如何反应
下面我们来处理先来看如何处理最简单的点击事件,我们先把最简单的代码结构写出来

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>vue3</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="https://www.unpkg.com/vue@next"></script>
    <script>
      // 处理用户输入
      const vueApp = Vue.createApp({
        data() {
          return {
            message: '开始时是托尼',
          }
        },
        template: `
          <div>{{message}}</div>
        `,
      })
      vueApp.mount('#app')
    </script>
  </body>
</html>

现在的基本结构跟上一节课类似,我们有一个数据叫message,把它通过双花括号的方式绑定到了模板中,页面就显示出来了。
现在我们添加一个按钮

<div>
  <button v-on:click="onBtnClick">改变</button>  
</div>

v-on:click="onBtnClick" 就是给按钮添加了一个点击事件,v-on表示要绑定事件,click表示要绑定的是点击事件,onBtnClick表示点击事件发生后,要调用的事件,大家可以发现其实更原生写法非常相似
还有一点,在实际开发中,v-on:click其实都是使用简写:

@click="onBtnClick"

使用@代替v-on,以后我们也都使用这种写法

现在我们还没有onBtnClick这个回调函数,在vue中,函数都是写在methods这个对象里面,methods就是方法,就是函数,一个意思
下面我们添加回调函数

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>vue3</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="https://www.unpkg.com/vue@next"></script>
    <script>
      // 处理用户输入
      const vueApp = Vue.createApp({
        data() {
          return {
            message: '开始时是托尼',
          }
        },
        methods: {
          // 增加点击事件
          onBtnClick() {
            this.message = '点击变成了钢铁侠'
          },
        },
        template: `
          <div>{{message}}</div>
          <div>
            <button @click="onBtnClick">改变</button>  
          </div>
        `,
      })
      vueApp.mount('#app')
    </script>
  </body>
</html>

我们再回调函数里改变了message的值,在页面里点击按钮,显示的文字也变化了,说明onBtnClick这个函数已经被调用了。

现在点击按钮,文字就只能变成固定的,我们想要它可以变成用户输入的内容,我们下面来学习一下在vue里input的使用

我们先在data里增加一个名字是content的数据,

data() {
   return {
    message: '开始时是托尼',
    content: '',  
   }
},

然后在模板中增加一个input

<div>
  <input type="text" v-model="content" />
   <button @click="onBtnClick">改变</button>  
</div>

这里通过v-model把data里的content绑定给了input,在vue中v-model起到了双向绑定的作用,也就是说我们改变input框里面的值,content的值会变,我们改变content的值,input框里的值也会变
大家现在知道了vue里两种绑定数据的方式,{{}}双花括号,单向绑定,用于把data里的数据显示到页面上,v-model,双向绑定,用于把data里的数据和input框里的内容同步起来。

现在我们要把点击变化以后的内容变成我们用户在input里输入的内容,完整代码如下

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>vue3</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="https://www.unpkg.com/vue@next"></script>
    <script>
      // 处理用户输入
      const vueApp = Vue.createApp({
        data() {
          return {
            message: '开始时是托尼',
            content: '',
          }
        },
        methods: {
          onBtnClick() {
            this.message = this.content  // 把input里面的值赋给message
          },
        },
        template: `
          <div>{{message}}</div>
          <div>
            <input type="text" v-model="content" />
            <button @click="onBtnClick">改变</button>  
          </div>
        `,
      })
      vueApp.mount('#app')
    </script>
  </body>
</html>

有了v-model的双向绑定,我们知道content的值和input里的值是一样的,我们只要把它赋值给message就行了。
这更原生写法比起来就方便多了,不用去获取dom元素,取值、赋值了

这节课我们学习了如何处理点击事件和获取用户输入的内容,建议初学者动手写一写,才能真正学会。

相关文章

网友评论

      本文标题:[vue3快速入门] 2.vue如何处理用户输入

      本文链接:https://www.haomeiwen.com/subject/rsoiwltx.html