美文网首页
2019-03-12 vue组件基础篇8

2019-03-12 vue组件基础篇8

作者: pingping_log | 来源:发表于2019-03-12 10:36 被阅读0次
  • $nextTick

理论上,我们应该不用去主动操作DOM,因为Vue的核心思想就是数据驱动DOM,但在很多业务里,我们避免不了会使用一些第三方库,比如propper.js、swiper等,这些基于原生JavaScript的库都有创建和更新及销毁的完整生命周期,与Vue配合使用时,就要利用好$nextTick。

<div id="app">
        <div id="div" v-if="showDiv">这是一段文本</div>
        <button @click="getText">获取div内容</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
        var app = new Vue({
            el: '#app',
            data: {
                showDiv: false
            },
            methods: {
                getText: function() {
                    this.showDiv = true;
                    this.$nextTick(function() {
                        var text = document.getElementById('div').innerHTML;
                        console.log(text);
                    });
                }
            }
        })
</script>
  • X-Templates

在<script>标签里使用text/x-template类型,并且指定一个id,将这个id赋给template。
在<script>标签里,你可以愉快地写HTML代码,不用考虑换行等问题。
不过,Vue的初衷并不是滥用它,因为它将模板和组件的其他定义隔离了。

<div id="app">
        <my-component></my-component>
        <script type="text/x-template" id="my-component">
            <div>这是组件的内容</div>
        </script>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        Vue.component('my-component', {
            template: '#my-component'
        });

        var app = new Vue({
            el: '#app',
        })
    </script>
  • 手动挂载实例

我们现在所创建的实例都是通过new Vue()的形式创建出来的。在一些非常特殊的情况下,我们需要动态地去创建Vue实例,Vue提供了Vue.extend和$mount两个方法来手动挂载一个实例。
手动挂载实例(组件)是一种比较极端的高级用法,在业务中几乎用不到,只在开发一些复杂的独立组件时可能会使用,所以只做了解就好。

<div id="mount-div">
        
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
        var MyComponent = Vue.extend({
            template: '<div>Hello: {{ name }}</div>',
            data: function() {
                return {
                    name: 'Aresn'
                }
            }
        });

        // 方法一
        // new MyComponent().$mount('#mount-div');

        // 方法二
        // new MyComponent({
        //     el: '#mount-div'
        // })

        // 方法三
        var component = new MyComponent().$mount();
        document.getElementById('mount-div').appendChild(component.$el);
</script>

相关文章

  • 2019-03-12 vue组件基础篇8

    $nextTick 理论上,我们应该不用去主动操作DOM,因为Vue的核心思想就是数据驱动DOM,但在很多业务里,...

  • Python 高端课程培训,CMDB自动化运维培训!

    1、入门小基础(8个课时): 1、沙盒环境,py环境安装使用 2、vue 基础语法与组件学习 3、vue + el...

  • Vue学习之深入了解组件

    上一篇:Vue学习之组件基础 组件名 在注册一个组件的时候,我们始终需要给它一个名字。该组件名就是 Vue.com...

  • Vue动态组件 component 以及缓存

    本文写给对Vue组件了解的基础上,如果你不明白什么是Vue的组件,可以去官网看看Vue组件基础。在Vue中有一个 ...

  • 干货博客集

    基础 webpack4.x 入门一篇足矣 react组件通信方式汇总 vue组件之间的通信 原生小程序组件通信 w...

  • 2018-12-20

    继续学习vue,学了组件基础。

  • vue命名规范

    自用vue变量命名规范 props 驼峰式命名 事件 组件 组件文件 基础组件名 基础组件名 name Pasca...

  • 8-Vue组件基础

    组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 。我们可以在一个通过 new Vue 创建的 Vu...

  • vue2 基础学习02 (Vue组件)

    vue2 基础学习02 (Vue组件) vue学习路径和建议----尤雨溪 vue官网 1.Vue组件 参考官方文...

  • 【Vue】组件通信(任意通信)

    本节所需的基础知识: 【Vue】组件通信(父传子props) 【Vue】组件通信(子传父$emit) 任意组件相互...

网友评论

      本文标题:2019-03-12 vue组件基础篇8

      本文链接:https://www.haomeiwen.com/subject/owefuqtx.html