当前位置: 首页 > news >正文

Vue.js-Day01

本来是准备学习angular的,但是总是卡在开头看不下去,干脆换个框架,那就vue吧!
使用jquery要引入特定的库,那使用vue也类似,可以在头部引入

<script src="https://unpkg.com/vue/dist/vue.js"></script>

我觉得vue最重要的理念就是将值和DOM绑定在一起,将数据渲染进DOM有以下几种方式:


1.文本插值

<div id="app">
      {{ message }}
</div>
    
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})


2.绑定在标签上

<div id="app-2">
  <span v-bind:title="message">
    鼠标悬停几秒钟查看此处动态绑定的提示信息!
  </span>
</div>

var app2 = new Vue({
  el: '#app-2',
  data: {
    message: '页面加载于 ' + new Date()
  }
})

这里类似v-bind的属性称之为(vue的)指令,该指令的作用是:“将这个元素节点的 title 属性和 Vue 实例的 message 属性保持一致”。


处理数据时,经常会用到if判断和循环,在vue里面也有这些应用

1.条件判断

<div id="app-3">
  <p v-if="seen">现在你看到我了</p>
</div>

var app3 = new Vue({
  el: '#app-3',
  data: {
    seen: true
  }
})

2.循环

<div id="app-4">
  <ol>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ol>
</div>

var app4 = new Vue({
  el: '#app-4',
  data: {
    todos: [
      { text: '学习 JavaScript' },
      { text: '学习 Vue' },
      { text: '整个牛项目' }
    ]
  }
})

我们还可以给DOM绑定一个调用 Vue 实例方法的事件监听器:

<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">逆转消息</button>
</div>

var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

双向数据绑定

<div id="app-6">
  <p>{{ message }}</p>
  <input v-model="message">
</div>

var app6 = new Vue({
  el: '#app-6',
  data: {
    message: 'Hello Vue!'
  }
})

组件
在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例,在 Vue 中注册组件很简单:

// 定义名为 todo-item 的新组件
Vue.component('todo-item', {
  template: '<li>这是个待办项</li>'
})

现在你可以用它构建另一个组件模板:

<ol>
  <!-- 创建一个 todo-item 组件的实例 -->
  <todo-item></todo-item>
</ol>

但是这样会为每个待办项渲染同样的文本,这看起来并不炫酷,我们应该能将数据从父作用域传到子组件。让我们来修改一下组件的定义,使之能够接受一个属性:

Vue.component('todo-item', {
  // todo-item 组件现在接受一个
  // "prop",类似于一个自定义属性
  // 这个属性名为 todo。
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})

现在,我们可以使用 v-bind 指令将待办项传到每一个重复的组件中:

<div id="app-7">
  <ol>
    <!-- 现在我们为每个todo-item提供待办项对象    -->
    <!-- 待办项对象是变量,即其内容可以是动态的 -->
    <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item>
  </ol>
</div>

Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
var app7 = new Vue({
  el: '#app-7',
  data: {
    groceryList: [
      { text: '蔬菜' },
      { text: '奶酪' },
      { text: '随便其他什么人吃的东西' }
    ]
  }
})

相关文章:

  • XSS跨站脚本***问题和原理详解
  • Project Euler Problem 92 Square digit chains
  • SCOI2010第一场
  • 关键词过滤算法【转】
  • easyui toopTip,鼠标划过悬浮,显示一个小提示框的方法
  • spring 事物的一些理解
  • FMDB支持的事务类型
  • 自动化安装Mysql5.6-脚本实现
  • Java 反射解析指定jar包出现ClassNotFoundException异常,处理方式
  • 通过Adobe Encode CC 2017,将一张静态图生成一个长时间的视频。
  • centos7-msyql-慢查询优化
  • centos7-mysql-分表
  • python初学之魔法方法1
  • 50G存储-免费代码托管工具公测上线
  • 学习LaTex
  • android 一些 utils
  • JavaScript设计模式与开发实践系列之策略模式
  • JS函数式编程 数组部分风格 ES6版
  • Rancher如何对接Ceph-RBD块存储
  • Shadow DOM 内部构造及如何构建独立组件
  • TypeScript实现数据结构(一)栈,队列,链表
  • win10下安装mysql5.7
  • 机器学习 vs. 深度学习
  • 力扣(LeetCode)21
  • 浏览器缓存机制分析
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 面试遇到的一些题
  • 浅谈Golang中select的用法
  • 详解NodeJs流之一
  • 异常机制详解
  • C# - 为值类型重定义相等性
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # Java NIO(一)FileChannel
  • #define、const、typedef的差别
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (4.10~4.16)
  • (C语言)二分查找 超详细
  • (第二周)效能测试
  • (附源码)计算机毕业设计ssm电影分享网站
  • (七)c52学习之旅-中断
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)关于多人操作数据的处理策略
  • (转载)深入super,看Python如何解决钻石继承难题
  • .equals()到底是什么意思?
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core跨平台微服务学习资源
  • .NET Framework 4.6.2改进了WPF和安全性
  • .NET 反射 Reflect
  • .Net6 Api Swagger配置
  • :中兴通讯为何成功
  • @Builder用法
  • [04] Android逐帧动画(一)
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)