当前位置:   article > 正文

Vue特点+Vue简单实例+Vue模板语法+Vue数据绑定+data和el的2种写法_写一个vue实例,要求包含data(数据)、template(模板)、el(挂在元素)、method

写一个vue实例,要求包含data(数据)、template(模板)、el(挂在元素)、methods(方法

目录

 

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第一个实例

  1. <!-- 引入开发版本的Vue 全局就多了一个 Vue的构造函数 -->
  2. <script src="../js/vue.js"></script>
  3. <body>
  4. <!-- 1.准备一个容器 -->
  5. <div id="app">
  6. <h1>hello,{{name}}</h1>
  7. </div>
  8. <script>
  9. //创建vue实例 配置项里面的key值不能乱改
  10. new Vue({
  11. el:'#app', //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
  12. data:{
  13. name:'Vue第一天' //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
  14. }
  15. });
  16. </script>
  17. </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. <!-- 1.准备一个容器 -->
  2. <div id="app">
  3. <h1>hello,{{name}},{{Date.now()}},{{1+1}}</h1>
  4. </div>
  5. <script>
  6. //创建vue实例 配置项里面的key值不能乱改
  7. new Vue({
  8. el:'#app', //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
  9. data:{
  10. name:'Vue第一天' //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
  11. }
  12. });
  13. </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. <!-- 1.准备一个容器 -->
  2. <div id="app">
  3. <h1>插值语法</h1>
  4. <h1>hello,{{name}}</h1>
  5. <hr>
  6. <h1>指令语法</h1>
  7. <a v-bind:href="url">点我去百度查Vue2文档</a>
  8. <a :href="url.toUpperCase()">点我去百度查Vue2文档</a>
  9. </div>
  10. <script>
  11. new Vue({
  12. el:'#app', //el用于指定当前Vue实例为哪个容器服务,通常为CSS选择器字符串
  13. data:{
  14. name:'Vue第一天', //data中用于存储数据,数据供 el所指定的容器 去使用(容器之外就不能使用),指暂时先写为一个对象
  15. url:'https://www.baidu.com'
  16. }
  17. });
  18. </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. <!-- 1.准备一个容器 -->
  2. <div id="app">
  3. 单向数据绑定: <input type="text" v-bind:value="name">
  4. </div>
  5. <script>
  6. new Vue({
  7. el:'#app',
  8. data:{
  9. name:'天空'
  10. }
  11. })
  12. </script>

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

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

  1. <!-- 1.准备一个容器 -->
  2. <div id="app">
  3. 单向数据绑定: <input type="text" v-bind:value="name">
  4. <br>
  5. 双向数据绑定: <input type="text" v-model:value="name">
  6. <br>
  7. 双向数据绑定: <input type="text" v-model ="name">
  8. </div>
  9. <script>
  10. new Vue({
  11. el:'#app',
  12. data:{
  13. name:'天空'
  14. }
  15. })
  16. </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:

  1. <script>
  2. new Vue({
  3. //el的第一种写法
  4. el:'#app',
  5. data:{
  6. name:'天空'
  7. }
  8. })
  9. </script>

写法2:利用Vue实例

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

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

2.data 的2种写法

写法1:对象式

  1. <script>
  2. new Vue({
  3. el:'#app',
  4. //data的第一种写法 对象式
  5. data:{
  6. name:'天空'
  7. }
  8. })
  9. </script>

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

  1. <!-- 1.准备一个容器 -->
  2. <div id="app">
  3. 你好,{{name}}
  4. </div>
  5. <script>
  6. const v = new Vue({
  7. //data 的第二种写法:函数式
  8. data:function(){
  9. console.log(this,11111); //Vue {_uid: 0, _isVue: true, __v_skip: true, _scope: EffectScope, $options: {…}, …
  10. return {
  11. name:'天空啊'
  12. }
  13. }
  14. }).$mount('#app');
  15. </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管理的函数

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号