Vue生命周期方法

Vue生命周期方法,第1张

和wbpack生命周期方法一样, 都是在从生到死的特定阶段调用的方法

PS: 生命周期钩子 = 生命周期函数 = 生命周期事件

    21创建期间的生命周期方法beforeCreate:

        created:

        beforeMount:

        mounted:

    22运行期间的生命周期方法beforeUpdate:

        updated:

    23销毁期间的生命周期方法beforeDestroy:

        destroyed:

1Vue特殊特性Vue特点: 数据驱动界面更新, 无需 *** 作DOM来更新界面

也就是说Vue不推荐我们直接 *** 作DOM, 但是在企业开发中有时候我们确实需要拿到DOM *** 作DOM

那么如果不推荐使用原生的语法获取DOM, 我们应该如何获取DOM

在Vue中如果想要拿到DOM元素我们可以通过ref来获取2ref使用21在需要获取的元素上添加ref属性 例如: <p ref="mypp">我是段落

22在使用的地方通过 this$refsxxx获取, 例如this$refmyppp

3ref特点ref添加到元素DOM上, 拿到的就是元素DOM

ref添加到组件上, 拿到的就是组件

1Vue渲染组件的两种方式

    11先定义注册组件, 然后在Vue实例中当做标签来使用

    12先定义注册组件, 然后通过Vue实例的render方法来渲染

2两种渲染方法的区别

    11当做标签来渲染, 不会覆盖Vue实例控制区域

    12通过render方法来渲染, 会覆盖Vue实例控制区域

您好,HTML5规范文档中指出:如果一个元素符合下面两条规则中的任一条,则window对象中必须要有与之对应的一个属性,属性值就是这个对象

如果一个元素拥有ID属性,那么ID属性的属性值就会成为window对象的属性名

如果一个元素拥有name属性,那么name属性的属性值就会成为window对象的属性名但这个元素的标签名必须是: a, applet, area, embed, form, frame, frameset, iframe, img, object,其中的一个。

> "foo" in window

false

> typeof foo // 这个全局变量到底有木有

object

//错误控制台输出了下面的警告//Element referenced by ID/NAME in the global scope

//Use W3C standard documentgetElementById() instead

> foo

[object HTMLDivElement]

//错误控制台输出了下面的警告//Element referenced by ID/NAME in the global scope

//Use W3C standard documentgetElementById() instead> "foo" in window true

常见的方法是使用children()方法或者fand()方法都是可以获取到某个元素的子元素的,children() 方法返回匹配元素集合中每个元素的子元素,find()方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。

jquery中获取当前dom元素的子元素的方法有很多,常见的方法是使用children()方法或者fand()方法都是可以获取到某个元素的子元素的,children() 方法返回匹配元素集合中每个元素的子元素,find()方法获得当前元素集合中每个元素的后代,通过选择器、jQuery 对象或元素来筛选。

一、使用children()方法获得子元素

1、使用该方法获取子元素并设置子元素的字体为蓝色,代码如下:

2、运行的效果如下图:

二、使用find()方法获取子元素

1、使用fand()方法获取子元素并且进行选择器的筛选,代码如下图:

2、运行的结果如下图:

参考资料

博客博客[引用时间2018-1-9]

在以往的工作当中,通常会遇到需要处理 DOM 的时候, DOM *** 作属于一个常规的范畴,我们可能需要通过它绑定一个事件、调整滚动条的位置、管理焦点、文本选择、媒体播放等等。

基于工程页面、逻辑复杂性、复用性等等因素可以选择合适的方案方便我们 *** 作 DOM 。

在页面比较简单和逻辑并不复杂的时候,我们可以根据实际情况选择比较简单的选择器方案;当工程逻辑较复杂的时候,我们要考虑组件的复用性、多人协作的不可控性等多种因素,选择方案的时候往往要考虑更多可能的场景。

如上所述,如果我们的使用场景单一,不需要复用的话,我们可以保证获取的 DOM 一致性的时候,可以考虑使用选择器获取 DOM 。

可以使用 documentgetElementXX 开头的方法:

可使用方法如下:

实际使用场景:

页面逻辑复杂的时候会有复用性的问题,如果使用 id 或者选择器就容易引发问题,这时我们可以选择使用 ref 。

ref 可以获取到相应的 DOM 节点,而且也可以得到详细信息,它得到的一个对象,包括 props,state 等。

React 会在组件挂载时给 current 属性传入 DOM 元素,并在组件卸载时传入 null 值。 ref 会在 componentDidMount 或 componentDidUpdate 生命周期钩子触发前更新。

ref 的值根据节点的类型而有所不同:

React 也支持另一种设置 refs 的方式,称为“回调 refs”。

不同于传递 createRef() 创建的 ref 属性,你会传递一个函数。这个函数中接受 React 组件实例或 HTML DOM 元素作为参数,以使它们能在其他地方被存储和访问。

React 将在组件挂载时,会调用 ref 回调函数并传入 DOM 元素,当卸载时调用它并传入 null。在 componentDidMount 或 componentDidUpdate 触发前,React 会保证 refs 一定是最新的。

父组件想要 *** 作子组件且没有控制权的时候可以选择使用 findDOMNode 。

findDOMNode 只在已挂载的组件上可用(即:已经存在 DOM 中的组件)。如果尝试调用未挂载的组件将会引发异常。

findDOMNode 不能用于函数组件。

如果组件已经被挂载到 DOM 上,此方法会返回浏览器中相应的原生 DOM 元素。此方法对于从 DOM 中读取值很有用,例如获取表单字段的值或者执行 DOM 检测。

当组件渲染的内容为 null 或 false 时,findDOMNode 也会返回 null。当组件渲染的是字符串时,findDOMNode 返回的是字符串对应的 DOM 节点。从 React 16 开始,组件可能会返回有多个子节点的 fragment,在这种情况下,findDOMNode 会返回第一个非空子节点对应的 DOM 节点。

感谢您的提问。根据您的问题,我了解到您想了解如何在el-button组件中添加原生方法。以下是我为您提供的解答:

在el-button组件中添加原生方法的方法与在普通HTML元素中添加原生方法类似。可以通过获取el-button组件的DOM元素,然后在其上添加事件监听器的方式来实现。具体步骤如下:

1 使用ref属性获取el-button组件的DOM元素,例如:

```

<el-button ref="myButton">按钮</el-button>

```

2 在Vue组件的mounted生命周期函数中获取DOM元素,并为其添加事件监听器,例如:

```

mounted() {

const buttonElement = this$refsmyButton$el; // 获取DOM元素

buttonElementaddEventListener('click', thishandleClick); // 添加事件监听器

},

methods: {

handleClick() {

// 在这里编写原生方法的代码逻辑

}

}

```

3 在Vue组件的beforeDestroy生命周期函数中移除事件监听器,以避免内存泄漏,例如:

```

beforeDestroy() {

const buttonElement = this$refsmyButton$el; // 获取DOM元素

buttonElementremoveEventListener('click', thishandleClick); // 移除事件监听器

}

```

以上就是在el-button组件中添加原生方法的方法。需要注意的是,在添加事件监听器时,需要使用addEventListener方法,并指定事件类型和事件处理函数。在移除事件监听器时,需要使用removeEventListener方法,并指定相同的事件类型和事件处理函数。希望我的回答能够对您有所帮助,如有其他问题,请随时向我提问。

ref :被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的 $refs 对象上。如果在普通的DOM元素上使用,那么指向的就是普通的DOM元素。

Vue特点: 数据驱动界面更新, 无需 *** 作DOM来更新界面

也就是说Vue不推荐我们直接 *** 作DOM, 但是在开发中有时候我们确实需要拿到DOM *** 作DOM

那么如果不推荐使用原生的语法获取DOM, 我们应该如何获取DOM

在Vue中如果想要拿到DOM元素我们可以通过ref来获取

例如: <p ref="myP">我是段落</p>

例如 this$refmyP

refs : 一个对象,持有注册过 ref 特性 的所有 DOM 元素和组件实例

注意: refs 只会在组件渲染完成之后生效,并且它们不是响应式的。这只意味着一个直接的子组件封装的“逃生舱”——你应该避免在模板或计算属性中访问 $refs 结语

在讲ref特点之前我们先来回顾, 原生语法获取元素的特点

例如: 通过原生的语法 documentquerySelector 获取到的都是被渲染之后DOM元素, 也就是原生的元素

在Vue中如果想获取原生的元素或者获取自定义的组件, 可以通过ref来获取

拿到了组件后, 还可以访问组件中的数据

Dom原生对象和jQuery对象的区别:

1jquery选择器得到的jquery对象和标准的 javascript中的documentgetElementById()取得的dom对象是 两种不同的对象类型,两者不等价 ;

注:js原生获取的dom是一个对象,jQuery对象就是一个数组对象,其实就是选择出来元素的数组集合。所以说他们两者是不同的对象类型不等价。

2jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法 乱使用会报错。

例如(文章下面有两个踩坑经历。):

$("#id")html();

documentgetElementById("id")innerHTML;

意思是指:获取ID为id的元素内的html代码。这两段代码 结果相同,但中间的取值过程不同 。

即:$("#id")innerHTML、documentgetElementById("id")html()之类的写法都是错误的。

注:jQuery是从js衍生出来的,师出同源,但是jQuery是 经过一系列 *** 作 之后,将其封装成了一个个不同的方法,学习jQuery开始就应当树立正确的观念,分清jQuery对象和DOM对象之间的区别,之后学习 jQuery就会轻松很多的。

没有被加载。

dom元素源代码找不到是还没有被加载,如果DOM元素是通过JavaScript生成的,那么需要等待JavaScript执行完毕后才能在源代码中看到该元素。

DOM元素源代码指的是网页中的HTML代码,它描述了网页中所有的DOM元素,包括标签、属性、文本内容等,可以通过浏览器的开发者工具。

以上就是关于Vue生命周期方法全部的内容,包括:Vue生命周期方法、js获取已知id的DOM元素、jquery中如何获取当前DOM对象里的子元素等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9620771.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存