Vue特点+Vue简单实例+Vue模板语法+Vue数据绑定+data和el的2种写法

目录

 

1.Vue特点

2.Vue安装

3.Vue第一个实例

 4.Vue模板语法

1.{{xxx }}   插值语法

2.v-xxx  指令语法  

5.Vue数据绑定

1.数据单向绑定   v-bind 就是一个单向绑定指令

2.数据双向绑定  v-model 就可以实现数据双向绑定

6.data 和 el 的2种写法

1.el 的两种写法 

2.data 的2种写法

 


1.Vue特点

1.采用组件化模式,提高代码复用率,且让代码更好维护

分析:一个.vue文件就是一个组件,各个组件之间不影响,其它项目需要某个组件时,直接把组件移过去就可直接用。

2.编写人员不用直接操作DOM,提高开发效率。 

 3.使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点。

2.Vue安装

3.Vue第一个实例

<!-- 引入开发版本的Vue 全局就多了一个 Vue的构造函数 -->
<script src="../js/vue.js"></script>
<body>
    <!-- 1.准备一个容器 -->
    <div id="app">
        <h1>hello,{{name}}</h1>
    </div>
    <script>
        //创建vue实例  配置项里面的key值不能乱改
        new Vue({
            el:'#app',           //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
            data:{
                name:'Vue第一天' //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
            }
        });
    </script>
</body>

分析总结1:

1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象

2.app容器里面的代码依然服务html规范,只不过混入了一些特殊的Vue语法 {{}}

3.app容器中的代码被称为 Vue模板

注意点1:容器和Vue实例是一对一的关系,一个容器只能对应一个Vue实例,一个Vue实例只能对应一个容器。

注意点2:app容器里面特殊的Vue语法 {{}},双花括号中只能是JS表达式

这里注意区分:JS表达式和JS语句

01.JS表达式:一个表达式会生成一个值,可以放在任何一个需要值的地方

(1)a

(2)a + b

(1)demo(1)    函数表达式

(1)x===y? 'a' : b  三元表达式

02.JS代码(语句)

(1)if(){ }

(2)for(){ }

    <!-- 1.准备一个容器 -->
    <div id="app">
        <h1>hello,{{name}},{{Date.now()}},{{1+1}}</h1>
    </div>
    <script>
        //创建vue实例  配置项里面的key值不能乱改
        new Vue({
            el:'#app',           //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
            data:{
                name:'Vue第一天' //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
            }
        });
    </script>

结果:

注意点3:data中的数据分层显示

  

分析总结2:

4.容器和Vue实例是一对一的关系

5.真实开发中只有一个Vue实例,并且会配合着组件一起使用

6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性

7.一旦data中的数据发生改变,那么模板中用到该数据的地方也会自动更新。

 4.Vue模板语法

1.{{xxx }}   插值语法

插值语法一般用于标签体里面的内容:<h1>标签体里面的内容</h1>

eg:<h1>{{name}}</h1>

2.v-xxx  指令语法  

eg:我们用 v-bind 来举例,解析标签属性: v-bind 可以简写 为  :  eg: v-bind:href='xxx' 就是 :href='xxx'

    <!-- 1.准备一个容器 -->
    <div id="app">
        <h1>插值语法</h1>
        <h1>hello,{{name}}</h1>
        <hr>
        <h1>指令语法</h1>
        <a v-bind:href="url">点我去百度查Vue2文档</a>
        <a :href="url.toUpperCase()">点我去百度查Vue2文档</a>
    </div>
    <script>
        new Vue({
            el:'#app',           //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
            data:{
                name:'Vue第一天', //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
                url:'https://www.baidu.com'
            }
        });
    </script>

v-bind可以给标签的任何一个属性去动态的绑定值,上面代码中,v-bind给a标签的href属性动态绑定了一个值,"url" ,此时就不是一个字符串,url是一个 表达式,对应data中的url

分析总结3:

Vue模板语法有2大类:

1.插值语法

        功能:用于解析标签体内容

        写法:{{xxx}},xxx是JS表达式,且可以直接读取到data中的所有属性

2.指令语法

        功能:用于解析标签(包括:标签属性,标签体内容,绑定事件。。。)

        举例:v-bind:href = "xxx" 或 简写为  :href  = "xxx",xxx同样要写JS表达式,

                   且可以直接读取到data中的所有属性

         备注:Vue中有很多的指令,且形式都是: v-??? 。

5.Vue数据绑定

1.数据单向绑定   v-bind 就是一个单向绑定指令

    <!-- 1.准备一个容器 -->
    <div id="app">
        单向数据绑定: <input type="text" v-bind:value="name">
    </div>
    <script>
        new Vue({
            el:'#app',
            data:{
                name:'天空'
            }
        })
    </script>

2.数据双向绑定  v-model 就可以实现数据双向绑定

v-model:value 可以简写为 v-model  ,因为v-model 默认收集的就是value值

    <!-- 1.准备一个容器 -->
    <div id="app">
        单向数据绑定: <input type="text" v-bind:value="name">
        <br>
        双向数据绑定: <input type="text" v-model:value="name">
        <br>
        双向数据绑定: <input type="text" v-model ="name">
    </div>
    <script>
        new Vue({
            el:'#app',
            data:{
                name:'天空'
            }
        })
    </script>

注意点:

以下代码是错误的,因为v-model只能应用在表单类元素(输入类元素,有value值)

 <h2 v-model:x="name">你好啊</h2>

 分析总结4:

Vue中有2种数据绑定的方式:

1.单向绑定(v-bind):数据只能从data流向页面

2.双向绑定(v-model):数据不仅能从data流向页面,还可以从页面流向data

备注:

        1.双向绑定一般都应用在表单类元素上(如:input,select等)

        2.v-model:value 可以简写为 v-model  ,因为v-model 默认收集的就是value值

6.data 和 el 的2种写法

1.el 的两种写法 

写法1:

    <script>
        new Vue({
            //el的第一种写法
            el:'#app',
            data:{
                name:'天空'
            }
        })
    </script>

写法2:利用Vue实例

    <!-- 1.准备一个容器 -->
    <div id="app">
        你好,{{name}}
    </div>
    <script>
        const v = new Vue({
            data:{
                name:'天空a'
            }
        });
        //利用实例对象原型上面的 $mount()挂载
        v.$mount('#app');   //el的二种写法
    </script>

分析:这两种方式都可以用,第二种方式灵活一点 

2.data 的2种写法

写法1:对象式

    <script>
        new Vue({
            el:'#app',
            //data的第一种写法  对象式
            data:{
                name:'天空'
            }
        })
    </script>

写法2:函数式, data写成一个函数函数返回值是一个对象对象里面是需要用的数据

    <!-- 1.准备一个容器 -->
    <div id="app">
        你好,{{name}}
    </div>
    <script>
        const v = new Vue({
            //data 的第二种写法:函数式
            data:function(){
                console.log(this,11111); //Vue {_uid: 0, _isVue: true, __v_skip: true, _scope: EffectScope, $options: {…}, …
                return {
                    name:'天空啊'
                }
            }
        }).$mount('#app');
    </script>

注意点:data函数不能写成箭头函数,写成箭头函数this会指向window,必须写function

关键字,或者用ES6中语法。

分析总结5:

1.el有2中写法

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

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

2.data有2种写法

        (1)对象式

        (2)函数式

           如何选择:一般情况下哪种都可以,但是学到组件时,data必须用函数式,否则会报错

3.一个重要原则:

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

Vue管理的函数:写再Vue的配置对象里面,如data的函数式写法就属于Vue管理的函数

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值