脚本宝典收集整理的这篇文章主要介绍了

(原创)vue组件 – 组件的原理 和 注册组件

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。
<p><code></p> <h1 id="articleHeader0">原理</h1> <p><strong>组件是<a href="http://www.js-code.com/tag/vue" title="Vue" target="_blank">Vue</a>的属性</strong>.</p> <p>如果直接在<a href="http://www.js-code.com/tag/vue" title="Vue" target="_blank">Vue</a>的原型上使用方法compenont,就能给vue本身增添一个的属性.然后所有的实例化出来的vue实例对象都可以用这个属性了.这就是全局组件<br />如果是在实例化出来的对象里增添compenonets属性,就是这个实例的属性.只能在这个实例对象里调用,所以称为局部组件.</p> <h2 id="articleHeader1">全局组件-注册一个全局组件</h2> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text=" <!DOCTYPE html><br /> <html></p> <p> <head><br /> <meta charset=&quot;UTF-8&quot;><br /> <title>vue组件-全局组件</title><br /> </head></p> <p> <body></p> <div id=&quot;app&quot;> <ttgc></ttgc></p> <p>hghhhh</p> <p> <ttgc></ttgc> </div> <div id=&quot;app2&quot;> <ttgc></ttgc> </div> <p> <script src=&quot;js/vue.min.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;></script><br /> <script type=&quot;text/javascript&quot;> //注册一个全局组件,所有的vue实例都可以使用这个组件,比如下面的两个vue实例都可以使用 <a href="http://www.js-code.com/tag/vue" title="浏览关于“Vue”的文章" target="_blank" class="tag_link">Vue</a>.component('ttgc', { template: '</p> <div> <h5>只能说我输了</h5> <h4>也许是你怕了</h4> <h3>我们的回忆 没有皱褶</h3> <h2>你却用离开烫下句点</h2> <h1>你的不安赢得你信任</h1> </div> <p>' }); new Vue({ el: '#app' }); new Vue({ el: '#app2' }); </script><br /> </body></p> <p></html></p> <p>" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs xml"><code> <span class="hljs-meta">&lt;!DOCTYPE html&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"UTF-8"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>vue组件-全局组件<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name"><a href="http://www.js-code.com/tag/div" title="浏览关于“div”的文章" target="_blank" class="tag_link">div</a></span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">ttgc</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ttgc</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>hghhhh<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">ttgc</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ttgc</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app2"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">ttgc</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">ttgc</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"js/vue.min.js"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"utf-8"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span>&gt;</span><span class="xml"> //注册一个全局组件,所有的vue实例都可以使用这个组件,比如下面的两个vue实例都可以使用 Vue.component('ttgc', { template: '<span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h5</span>&gt;</span>只能说我输了<span class="hljs-tag">&lt;/<span class="hljs-name">h5</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h4</span>&gt;</span>也许是你怕了<span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>我们的回忆 没有皱褶<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>你却用离开烫下句点<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>你的不安赢得你信任<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>' }); new Vue({ el: '#app' }); new Vue({ el: '#app2' }); </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span> </code></pre> <h2 id="articleHeader2">局部组件-在vue实例里注册局部组件</h2> <p>在vue实例里注册局部组件</p> <div class="widget-codetool" style="display:none;"> <div class="widget-codetool--inner"> <span class="selectCode code-tool" data-toggle="tooltip" data-placement="top" title="" data-original-title="全选"></span><br /> <span type="button" class="copyCode code-tool" data-toggle="tooltip" data-placement="top" data-clipboard-text="<!DOCTYPE html><br /> <html></p> <p> <head><br /> <meta charset=&quot;UTF-8&quot;><br /> <title>在vue实例里注册局部组件</title><br /> </head></p> <p> <body></p> <div id=&quot;app&quot;> <runoob></runoob><br /> <hulu></hulu> </div> <p> <script src=&quot;js/vue.min.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;></script><br /> <script> // 创建根实例 new Vue({ el: '#app', //在vue实例里注册局部组件 components: { // 组件只能在实例挂载处(#app)里面使用,在别的vue实例的挂载处不可使用 'runoob': { template: '</p> <div> <h5>只能说我输了</h5> <h4>也许是你怕了</h4> <h3>我们的回忆 没有皱褶</h3> <h2>你却用离开烫下句点</h2> <h1>你的不安赢得你信任</h1> </div> <p>' }, 'hulu': { template: '</p> <div> <h2>我叫葫芦1</h2> <p>你好吗</p> </div> <p>' } } }) </script><br /> </body></p> <p></html>" title="" data-original-title="复制"></span> </div> </p></div> <pre class="hljs xml"><code><span class="hljs-meta">&lt;!DOCTYPE html&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">meta</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"UTF-8"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>在vue实例里注册局部组件<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"app"</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">runoob</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">runoob</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">hulu</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">hulu</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"js/vue.min.js"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"text/javascript"</span> <span class="hljs-attr">charset</span>=<span class="hljs-string">"utf-8"</span>&gt;</span><span class="undefined"></span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="xml"> // 创建根实例 new Vue({ el: '#app', //在vue实例里注册局部组件 components: { // 组件只能在实例挂载处(#app)里面使用,在别的vue实例的挂载处不可使用 'runoob': { template: '<span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h5</span>&gt;</span>只能说我输了<span class="hljs-tag">&lt;/<span class="hljs-name">h5</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h4</span>&gt;</span>也许是你怕了<span class="hljs-tag">&lt;/<span class="hljs-name">h4</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>我们的回忆 没有皱褶<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>你却用离开烫下句点<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>你的不安赢得你信任<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>' }, 'hulu': { template: '<span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>我叫葫芦1<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>你好吗<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>' } } }) </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span> <span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span></code></pre> <p></code></p>

总结

以上是脚本宝典为你收集整理的

(原创)vue组件 – 组件的原理 和 注册组件

全部内容,希望文章能够帮你解决

(原创)vue组件 – 组件的原理 和 注册组件

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过