Vue学习

2 篇文章 0 订阅
1 篇文章 0 订阅

Vue学习

vue.js官网(https://cn.vuejs.org/),下载Vue.js

概念:

Vue是一个渐进式框架,可以作为应用的一部分嵌入其中 。
它是一种声明式编程,区别以往的命令式编程,它更加方便流行,实现响应式交互。

Vue对象:

创建Vue对象的时候,传入了一些options:{}      ~~~~     //在Vue.js官网中可以查

  • {}中包含了el属性:该属性决定这个Vue对象挂载到哪一元素
  • {}中包含了data属性:通常会存储一些数据,这些数据可以是我们直接定义出来的,也可以是来自于网络。从服务器加载的。
  • {}中包含一个数据列表时,html代码中使用v-for指令。
  • {}中包含methods属性,用于定义方法

简单计数器

<head>
    <script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
    <h2>当前计数:{{counter}}</h2>
<!--    <button v-on:click="counter++">+</button>-->
<!--    <button v-on:click="counter--;">-</button>-->

    <!--改良:食用方法可以完成多种操作-->
    <button v-on:click="add">+</button>
<!--    @click是简写,称为语法糖,该指令用于监听某个元素的点击事件,并且需要指定当发生点击时要执行的方法-->
    <button @click="sub">-</button>
</div>
<script>
    const app = new Vue({
        el:'#app',
        data:{
            counter:0,
        },
        methods:{
            add:function () {
                this.counter++;
                console.log("add被执行");
            },
            sub:function () {
                this.counter--;
                console.log("sub被执行");
            }
        }
    })
</script>

</body>

Vue中的MVVM

维基百科,一个学习概念性的网站
View ViewModel Model,ViewModel作为View和Model交流的桥梁,一方面它实现了数据绑定,将Model的改变反映到View中,另一方面它实现了DOM listener,当DOM发生一些事件(点击、滚动、touch等)时,可以监听到,可以在需要的情况下改变对应的data。
参考学习网站(来自博主:故事很长、)

Vue的生命周期钩子函数

方便开发者在想要的地方插入自己的代码
后续继续了解

模板设置

规范格式,两格缩进更加普及,一般大厂公司·都是用的2格缩进。
idea设置方法:file-setting-code style-HTML/CSS/…把制表符大小和缩进都改成2,确定即可
idea代码模板设置:复制要设为模板的代码,打开file-setting-live template 添加模板块…

插值—v-once、v-bind等一些指令

<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="../js/vue.js"></script>
</head>
<body>

<div id="app">
  <h2>{{message}}</h2>
  <h2>{{message}},你是个大美女</h2>
  <!--mustache语法中不仅可以直接写变量,还可以写简单的表达式-->
  <h2>{{firstName + ' ' + lastName}}</h2>
  <h2>{{firstName}}{{lastName}}</h2>
<!--  这里的空格不用引号引起来也可以显示-->
  <h2>{{firstName}} {{lastName}}</h2>

<!--  v-once指令实现一次性插值,不能再改变-->
  <h2 v-once>v-once{{message}}</h2>

<!--  v-html指令实现输出真正的 HTML,相当于嵌入html语法-->
<!--  <h2 v-html>{{url}}</h2> 写错了写错了!好好注意!url人家都是放在标签里面的!ps标签中间的内容被覆盖-->
  <h2 v-html="url">v-html</h2>

<!--v-text不够灵活,它会用引号里的东西覆盖标签里的东西,一般不使用,-->
  <h2 v-text="message"></h2>
  <h2 v-text="message">,你是个大美女</h2>

<!--v-pre指令相当于转义作用,不解析地展示内容,ps此处展示了一个空格-->
  <h2 v-pre>v-pre       {{message}}</h2>

</div>

<script>
  const app = new Vue({
    el:'#app',
    data:{
      message:'Hello!',
      firstName:'aoao',
      lastName:'zozo',
      url:'<a href="http://www.baidu.com">百度</a>',//这里必须要有替代文本或者什么东西,不然浏览器报错
    }
  })
</script>

</body>
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="../js/vue.js"></script>
</head>
<body>

<style>
  [v-cloak]{
    display: none;
  }
</style>

<div id="app">
<!--  cloak:斗篷 该指令在vue解析之后失效,为什么需要使用v-cloak,因为自上而下解析-->
  <h2 v-cloak>{{message}}</h2>
</div>

<script>
  setTimeout(function () {
    const app = new Vue({
      el:'#app',
      data:{
        message:'Hello!',
      }
    })
  },2000);

</script>
</body>
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
  <!--错误错误!mustache在标签中间使用-->
  <!--<div src="{{message}}"></div>-->
  <!--正确做法:使用v-bind指令,用来绑定动态变量,经常用,语法糖:英文冒号‘:’-->
  <div v-bind:src="imgURL"></div>
  <a v-bind:href="aHref">连接展示处</a>
  <a :href="aHref">连接展示处</a>
</div>

<script>
  const app = new Vue({
    el:'#app',
    data:{
      message:'Hello!',
      imgURL:'http://...',
      aHref:'http://www.baidu.com',
    }
  })
</script>

</body>

v-bind动态绑定class

<div id="app">
  <!--v-bind动态绑定class,和普通的class可以共存,内部会自动合并-->
  <!--  <h2 :class="{类名1:boolean,类名2:boolean}">{{message}}</h2>-->
  <h2 class="title" :class="{active:isActive,line:isLine}">{{message}}</h2>
  <button v-on:click="btnClick()">按钮</button>
  <h2 class="title" :class="getClass()">{{message}}</h2>

<!--  加单引号解析为字符串,不加解析为变量-->
  <h2 :class="['active','line']">{{message}}</h2>
  <h2 :class="[active,line]">{{message}}</h2>
  <h2 :class="getClasses()">{{message}}</h2>
</div>

<script>
  const app = new Vue({
    el:'#app',
    data:{
      message:'Hello!',
      isActive:true,
      isLine:false,
      active:'a',
      line:'b',
    },
    methods:{
      btnClick:function(){
        this.isActive = !this.isActive;
      },
      getClass:function(){
        return {active:this.isActive,line:this.isLine}
      },
      getClasses:function () {
        return [this.active,this.line]

      }
    }
  })
</script>

ES5和ES6部分区别:

var没有块级作用域,函数需要使用闭包,let可以看成更完美的var,它有自己的作用域,不需要使用闭包,并且有很多高级好用的点。
const是用来将某个变量修饰为常量并且必须给它初始化赋值,来保证数据的安全性。(常量的含义是指向的对象不能修改,但是可以改变对象内部的属性,示例如下:)

const obj = {
name:'ah',
age:18,
height:1.88,
}
obj.name = 'kobe';
obj.age = 40;

在ES6开发中,优先使用const,只有需要改变某一个标识符的时候才使用let。

对象的字面量增强写法:

//1.属性的增强写法
const name = 'ah';
const age = 18;
const height = 1.88;
//ES5的写法:
const obj = {
name:name,
age:age,
height:height,
}
//ES6写法:
const obj = {
name,
age,
height,
}

//2.函数的增加写法
//ES5的写法:
const obj = {
run:function(){
}
}
//ES6的写法:
const obj = {
run(){
}
}

条件渲染小案例

<div id="app">
  <span v-if="isUser">
    <label for="username">用户账户</label>
    <input type="text" placeholder="用户账户" id="username"/>
  </span>
  <span v-else>
    <label for="email">用户邮箱</label>
    <input type="text" placeholder="用户邮箱" id="email"/>
  </span>
  <button>切换类型</button>
</div>

<script>
  const app = new Vue({
    el:'#app',
    data:{
      isUser:true,
    }
  })
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值