mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-10 16:48:17 +08:00
88 lines
5.2 KiB
HTML
88 lines
5.2 KiB
HTML
<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">'<div>Hello!</div>'</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>
|