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>
目录
相关文章
|
6月前
|
JavaScript
Vue中el与data的两种写法
Vue中el与data的两种写法
|
6月前
|
JavaScript 前端开发 容器
Vue之el,data
Vue之el,data
|
JavaScript 数据格式
VUE element-ui下拉菜单el-select获取label值或value的值
VUE element-ui下拉菜单el-select获取label值或value的值
1979 0
VUE element-ui下拉菜单el-select获取label值或value的值
|
编解码 前端开发
Element el-row el-col 布局组件详解
本文目录 1. 背景 2. 分栏布局 3. 分栏间隔 4. 分栏偏移 4. 对齐方式 5. 响应式布局 6. 小结
5965 0
Element el-row el-col 布局组件详解
|
4月前
|
Python
El Farol Bar 问题解释
El Farol Bar 问题解释
|
6月前
|
移动开发 前端开发
vue3 Element-Plus封装的el-tree-select的使用
vue3 Element-Plus封装的el-tree-select的使用
424 0
vue3 Element-Plus封装的el-tree-select的使用
|
6月前
el-tree在el-form中通过rules进行校验
el-tree在el-form中通过rules进行校验
209 1
|
6月前
|
JavaScript
Property 'xx' does not exist on type 'Element | Element[] | Vue | Vue[]'
Property 'xx' does not exist on type 'Element | Element[] | Vue | Vue[]'
67 0
|
11月前
|
前端开发
el-option样式改变以及多个el-option无法并列问题详解(element-plus+Vue3)
el-option样式改变以及多个el-option无法并列问题详解(element-plus+Vue3)
389 0