vue 钩子函数


    <div id="app">
        <div>
            <label>姓名:</label>
            <input type="text" v-model="user.name" id="user">
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            data: {
                user: {
                    name:"111"
                }
            },
            created() {
                let inputelement = document.getElementById('user');
                console.log(inputelement);
                inputelement.onblur = function(e) {
                    vm.user.name = "";
                }
            }
        });
    </script>

打印结果: 图片描述

钩子函数不太清楚 1.在created阶段 可以访问到dom节点吗 ? 这里可以打印出inputelement但是 事件无效 。2.试了试counted 既可以访问到节点又可以对节点进行操作,区别在哪里。

阅读 2.5k
4 个回答
<!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>
    <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <div>
        <label>姓名:</label>
        <input type="text" v-model="user.name" id="user" />
      </div>
    </div>
    <script>
      var vm = new Vue({
        el: '#app',
        data: {
          user: {
            name: '111',
          },
        },
        created() {},
        mounted() {
          let inputelement = document.getElementById('user');
          console.log(inputelement);
          inputelement.onblur = function(e) {
            vm.user.name = '';
          };
        },
      });
    </script>
  </body>
</html>

created钩子 实例创建完成但挂载阶段还没开始,所以可以操作vue实例中的数据和各种方法,但是还不能对dom节点进行操作,所以你的console可以打印但是事件无效;mounted钩子是 el 被新创建的 vm.$el 替换,并挂载到实例上去之后,具体官方文档有写,地址:https://cn.vuejs.org/v2/api/#...

我是初学者,我自己的理解是这样的:
因为vue是单页的,每次进入新的页面就要创建(created)一个页面然后替换(mounted)当前的页面
所以created访问不到dom
我比较疑惑的是你为什么能打印出dom?我试了一下是null?求解
以上都是我自己的理解欢迎大佬指正

把你打印的inputelement 贴出来看下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题