uTools-Manuals/docs/vue/实例方法-生命周期.html
2019-04-21 11:50:48 +08:00

88 lines
5.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<h2 id="实例方法-生命周期"><a href="#实例方法-生命周期" class="headerlink" title="实例方法 / 生命周期" data-scroll="">实例方法 / 生命周期</a></h2><h3 id="vm-mount"><a href="#vm-mount" class="headerlink" title="vm.$mount( [elementOrSelector] )" data-scroll="">vm.$mount( [elementOrSelector] )</a></h3><ul>
<li><p><strong>参数</strong></p>
<ul>
<li><code>{Element | string} [elementOrSelector]</code></li>
<li><code>{boolean} [hydrating]</code></li>
</ul>
</li>
<li><p><strong>返回值</strong><code>vm</code> - 实例自身</p>
</li>
<li><p><strong>用法</strong></p>
<p>如果 Vue 实例在实例化时没有收到 el 选项,则它处于“未挂载”状态,没有关联的 DOM 元素。可以使用 <code>vm.$mount()</code> 手动地挂载一个未挂载的实例。</p>
<p>如果没有提供 <code>elementOrSelector</code> 参数,模板将被渲染为文档之外的的元素,并且你必须使用原生 DOM API 把它插入文档中。</p>
<p>这个方法返回实例自身,因而可以链式调用其它实例方法。</p>
</li>
<li><p><strong>示例</strong></p>
<pre><code class="hljs js"><span class="hljs-keyword">var</span> MyComponent = Vue.extend({
<span class="hljs-attr">template</span>: <span class="hljs-string">'&lt;div&gt;Hello!&lt;/div&gt;'</span>
})
<span class="hljs-comment">// 创建并挂载到 #app (会替换 #app)</span>
<span class="hljs-keyword">new</span> MyComponent().$mount(<span class="hljs-string">'#app'</span>)
<span class="hljs-comment">// 同上</span>
<span class="hljs-keyword">new</span> MyComponent({ <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span> })
<span class="hljs-comment">// 或者,在文档之外渲染并且随后挂载</span>
<span class="hljs-keyword">var</span> component = <span class="hljs-keyword">new</span> MyComponent().$mount()
<span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">'app'</span>).appendChild(component.$el)</code></pre>
</li>
<li><p><strong>参考</strong></p>
<ul>
<li><a href="guide/instance.html#生命周期图示">生命周期图示</a></li>
<li><a href="guide/ssr.html">服务端渲染</a></li>
</ul>
</li>
</ul>
<h3 id="vm-forceUpdate"><a href="#vm-forceUpdate" class="headerlink" title="vm.$forceUpdate()" data-scroll="">vm.$forceUpdate()</a></h3><ul>
<li><p><strong>示例</strong></p>
<p>迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。</p>
</li>
</ul>
<h3 id="vm-nextTick"><a href="#vm-nextTick" class="headerlink" title="vm.$nextTick( [callback] )" data-scroll="">vm.$nextTick( [callback] )</a></h3><ul>
<li><p><strong>参数</strong></p>
<ul>
<li><code>{Function} [callback]</code></li>
</ul>
</li>
<li><p><strong>用法</strong></p>
<p>将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 <code>Vue.nextTick</code> 一样,不同的是回调的 <code>this</code> 自动绑定到调用它的实例上。</p>
<blockquote>
<p>2.1.0 起新增:如果没有提供回调且在支持 Promise 的环境中,则返回一个 Promise。请注意 Vue 不自带 Promise 的 polyfill所以如果你的目标浏览器不是原生支持 Promise (IE你们都看我干嘛),你得自行 polyfill。</p>
</blockquote>
</li>
<li><p><strong>示例</strong></p>
<pre><code class="hljs js"><span class="hljs-keyword">new</span> Vue({
<span class="hljs-comment">// ...</span>
methods: {
<span class="hljs-comment">// ...</span>
example: <span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
<span class="hljs-comment">// 修改数据</span>
<span class="hljs-keyword">this</span>.message = <span class="hljs-string">'changed'</span>
<span class="hljs-comment">// DOM 还没有更新</span>
<span class="hljs-keyword">this</span>.$nextTick(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
<span class="hljs-comment">// DOM 现在更新了</span>
<span class="hljs-comment">// `this` 绑定到当前实例</span>
<span class="hljs-keyword">this</span>.doSomethingElse()
})
}
}
})</code></pre>
</li>
<li><p><strong>参考</strong></p>
<ul>
<li><a href="#Vue-nextTick">Vue.nextTick</a></li>
<li><a href="guide/reactivity.html#异步更新队列">异步更新队列</a></li>
</ul>
</li>
</ul>
<h3 id="vm-destroy"><a href="#vm-destroy" class="headerlink" title="vm.$destroy()" data-scroll="">vm.$destroy()</a></h3><ul>
<li><p><strong>用法</strong></p>
<p>完全销毁一个实例。清理它与其它实例的连接,解绑它的全部指令及事件监听器。</p>
<p>触发 <code>beforeDestroy</code><code>destroyed</code> 的钩子。</p>
<p class="tip">在大多数场景中你不应该调用这个方法。最好使用 <code>v-if</code><code>v-for</code> 指令以数据驱动的方式控制子组件的生命周期。</p>
</li>
<li><p><strong>参考</strong><a href="guide/instance.html#生命周期图示">生命周期图示</a></p>
</li>
</ul>