Vue草稿

Vue学习笔记

1.概述、特征、以及初始化

  • Vue 是一种灵活的渐进式相应框架
  • 采用声明式的编程范式
    引用Vue的方法
<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
    
      el: '#app', //用于挂载需要挂载的元素
      data: {
    
        message: 'fuck you'
      }
    })
  </script>
  

通过采用el挂载和HTML代码定义id的方式来使用Vue.
data是vue实例对应的数据对象
methods定义属于vue的一些方法,可以再其他地方调用,也可以在指令中使用

2. 创建、显示、更新列表

<div id="app">
    <ul>
      <li v-for="item in movies">{
  {item}}</li>
    </ul>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
    
      el: '#app',
      data: {
    
        message: 'ssda',
        movies: ['星际穿越', '大话西游', '少年派'],
      }
    })
  </script>

声明式的编程范式,使得列表操作变得简易。

3.案例:计数器

包含新的指令,v-on 和新的属性 methods,可以通过函数的形式来匹配复杂的操作

 <button v-on:click="add">+</button>
    <button v-on:click="sub">-</button>
  </div>

  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
    
      el: '#app',
      data: {
    
        counter: 0
      },
      methods: {
    
        add: function () {
    
          console.log('+++')
          this.counter++
        },
        sub: function () {
    
          console.log('---')
          this.counter--
        }

      },
    })
  </script>

此处 v-on:click 可以用语法糖 @click 来替代。

4.关于插值的操作

mustache 语法

 <h2>{
  {message}}, 李银河!</h2>
 <h2>{
  {firstName + lastName}}</h2>

mustache语法中不仅可以写变量,亦可以写简单的表达式。

v-once 指令

表示页面的元素和组件只渲染一次,不会随着数据的改变而改变。

<h2 v-once>{
  {message}}</h2>

v-for 指令
表示循环元素或组件中的内容,后接表达式。

<ul>
  <li v-for="item in movies">{
  {item}}</li>
</ul>

v-html 指令
表示有选择性地解析html中的内容

<h2 v-html='url'>{
  {url}}</h2>

v-text 指令

<h2 v-text='message'>,栗子</h2>

表示显示指定的数据,但是很不灵活,会直接覆盖原标签内的数据,而且不支持拼接等操作。
该指令用得不多

v-pre 指令

<h2 v-pre>{
  {message}}</h2>

表示原封不动地显示标签内的内容,而不会对其进行解析。
该指令用得不多

v-cloak 指令
一般用来消除抖动

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

  <div id="app">
    <h2 v-cloak>{
  {message}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    // 由于 v-cloak 在被解析之后会被删除,所以
    // 在vue解析之前,div中有v-cloak属性
    // 在vue解析之后,div中没有v-cloak
    setTimeout(function () {
    
      const app = new Vue({
    
        el: '#app',
        data: {
    
          message: '你好'
        }
      })
    }, 1000)
  </script>

5.v-bind 数据绑定

v-bind 的基本使用
绑定属性

<img v-bind:src='imgURL' alt="谷歌">
<a v-bind:href="ahref">百度一下</a>

v-bind 语法糖

<a :href="ahref">百度一下</a>

实际上是省略了v-bind指令。

v-bind 绑定到class有两种方式 对象语法和数组语法
用法一 可以直接通过{}绑定一个类
用法二 可以通过判断传入多个值
用法三 和普通的类同时存在,并不冲突

v-bind 绑定到class(对象语法)
此案例添加了一个按钮,并设置了一个监听事件,使得点击按钮时改变绑定到<h2>的class中的布尔值,从而实现对样式的改变。

<div id='app'>
    <h2 v-bind:class='{active: isActive, line: isLine}'>{
  {message}}</h2>
    <button v-on:click='btnClick'>按钮</button>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        message: '你好',
        isActive: true,
        isLine: false,
      },
      methods: {
        btnClick: function () {
          this.isActive = !this.isActive
        }
      }
    })

v-bind 绑定到class(数组语法)

<div id='app'>
    <h2 class="title" :class="[active, line]">{
  {message}}</h2>
    <h2 class="title" :class="getClasses()">{
  {message}}</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
    
      el: '#app',
      data: {
    
        message: 'hello',
        active: 'one',
        line: 'two'
      },
      methods: {
    
        getClasses: function () {
    
          return [this.active, this.line]
        }
      }
    })
  </script>

v-bind 动态绑定style(对象语法)

原理大致相同,引号后面改成style即可。

<div id='app'>
    <!-- <h2 v-bind:style='{属性名:属性值}'>{
   {message}}</h2> -->
    <!-- <h2 v-bind:style='{fontSize: theSize + "px", color: theColor}'>{
   {message}}</h2> -->
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值