4.el与data的两种写法

简介: el与data的两种写法

1.el与mount

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //el的两种写法
         const v = new Vue({
            el:'#root', //第一种写法
            data:{
                name:'xgc'
            }
        })
      console.log(v)
    </script>
</html>

我们可以通过控制台输出实例对象。可以看到控制输出的Vue实例。

以$开头的,我们都可以使用,后期我们会讲解到。

我们往下滑找到proto,里面有个mount。

下面进行演示:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //el的两种写法
        const v = new Vue({
            //el:'#root', //第一种写法
            data:{
                name:'xgc'
            }
        })
        console.log(v)
        v.$mount('#root') //第二种写法 
    </script>
</html>

我们通过注释掉el,我们使用

v.$mount('#root')

也可以指定容器。

第二种更加灵活

如果现在有个需求:需要等待2秒钟,将Vue实例与容器绑定。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //el的两种写法
        const v = new Vue({
            //el:'#root', //第一种写法
            data:{
                name:'xgc'
            }
        })
        console.log(v)
      //延迟两秒钟
        setTimeout(() =>{
            v.$mount('#root')
        },2000);
    </script>
</html>

我们保存代码以后。可以看到通过两秒以后才会容器绑定然后渲染。

2.data的对象式与函数式

对象式其实就是我们一开始的那种写法,在此就不过多赘述了。

函数式:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //data的两种写法
        /*new Vue({
            el:'#root',
            //data的第一种写法:对象式
            /* data:{
                name:'xgc'
            } */
            //data的第二种写法:函数式
            data(){
                console.log('@@@',this) //此处的this是Vue实例对象
                return{
                    name:'xgc'
                }
            }
        })
    </script>
</html>

通过代码的consloe输出后中的this是Vue实例对象。

我们修改下,修改成箭头函数看一下输出内容。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //data的两种写法
        /*new Vue({
            el:'#root',
            //data的第一种写法:对象式
            /* data:{
                name:'xgc'
            } */
            //data的第二种写法:函数式
            data:()=>{
                console.log('@@@',this) //此处的this是Vue实例对象
                return{
                    name:'xgc'
                }
            }
        })
    </script>
</html>

通过箭头代码的consloe输出后中的this是全局的Window。

2.总结

data与el的2种写法

                   1.el有2种写法

                         (1).new Vue时候配置el属性。

                         (2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。

                   2.data有2种写法

                                   (1).对象式

                                   (2).函数式

                                   如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。

                   3.一个重要的原则:

                                   由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>el与data的两种写法</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 
            data与el的2种写法
                    1.el有2种写法
                                    (1).new Vue时候配置el属性。
                                    (2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。
                    2.data有2种写法
                                    (1).对象式
                                    (2).函数式
                                    如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。
                    3.一个重要的原则:
                                    由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。
        -->
        <!-- 准备好一个容器-->
        <div id="root">
            <h1>你好,{{name}}</h1>
        </div>
    </body>
    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
        //el的两种写法
        /*const v = new Vue({
            //el:'#root', //第一种写法
            data:{
                name:'xgc'
            }
        })
        console.log(v)
        setTimeout(() =>{
            v.$mount('#root')
        },2000);*/
        //v.$mount('#root') //第二种写法 
        //data的两种写法
        new Vue({
            el:'#root',
            //data的第一种写法:对象式
            /* data:{
                name:'xgc'
            } */
            //data的第二种写法:函数式
            data(){
                console.log('@@@',this) //此处的this是Vue实例对象
                return{
                    name:'xgc'
                }
            }
        })
    </script>
</html>
目录
相关文章
|
7月前
|
JavaScript
Vue中el与data的两种写法
Vue中el与data的两种写法
|
编解码 前端开发
Element el-row el-col 布局组件详解
本文目录 1. 背景 2. 分栏布局 3. 分栏间隔 4. 分栏偏移 4. 对齐方式 5. 响应式布局 6. 小结
6048 0
Element el-row el-col 布局组件详解
|
7月前
el-tree在el-form中通过rules进行校验
el-tree在el-form中通过rules进行校验
217 1
不使用el-form仅仅单独给el-input设置表单校验
不使用el-form仅仅单独给el-input设置表单校验
467 0
|
JavaScript 容器
[Vue] el 与 data 的两种写法
[Vue] el 与 data 的两种写法
HTML中<button />和<input type=“button“/>的区别
HTML中<button />和<input type=“button“/>的区别
131 0
|
JavaScript 前端开发
el-select样式两种修改方式index.html或popper-append-to-body加popper-class
el-select样式两种修改方式index.html或popper-append-to-body加popper-class
397 0