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

Vue初探

Vue.js 不是一个框架,它只是一个提供 MVVM 风格的双向数据绑定的库,专注于 UI 层面。Vue.js 提供的核心是 MVVM 中的 VM,也就是 ViewModel。ViewModel 负责连接 View 和 Model,保证视图和数据的一致性。如果你用过 AngularJS,你会发现 Vue.js 同时还借鉴了 Angular 的 directive 和 filter 的概念,但是 API 要简单易懂得多,整体也轻巧得多。在组件化这一点上,Vue.js 和 facebook 的 React.js 更为接近,可以定义可复用和嵌套的组件类,并且可以在模板中声明式地使用组件。

可以动态的喧嚷页面

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test-vuejs</title>
</head>
<body>
<div id="app">
    {{ message }}
</div>


<script src="./js/vue/vue.js"></script>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: 'Hello Vue!'
        }
    });
</script>
</body>
</html>

v-bind指令

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test-vuejs</title>
</head>
<body>
<div id="app">
  <span v-bind:title="message">
    鼠标悬浮在我头上
  </span>
</div>


<script src="./js/vue/vue.js"></script>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: '页面加载时间 ' + new Date()
        }
    })
</script>
</body>
</html>

422101-20170208172048354-930068342.png

v-if 控制

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test-vuejs</title>
</head>
<body>
<div id="app">
    <p v-if="seen">你可以看见我!</p>
</div>


<script src="./js/vue/vue.js"></script>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            seen: true
        }
    })
</script>
</body>
</html>

seen的值为true就可以显示文字

v-for循环

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test-vuejs</title>
</head>
<body>
<div id="app">
    <ol>
        <li v-for="todo in todos">
            {{ todo.text }}
        </li>
    </ol>
</div>


<script src="./js/vue/vue.js"></script>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            todos: [
                { text: '学习JS' },
                { text: '学习Vue' },
                { text: '创造牛逼的东西' }
            ]
        }
    })
</script>
</body>
</html>

422101-20170208172804510-969141604.png

在控制台里,输入 app.todos.push({ text: 'New item' })。你会发现列表中多了一栏新内容。

422101-20170208173711322-1034575297.png

422101-20170208173717541-1457577804.png

处理用户输入 v-on

为了让用户和你的应用进行互动,我们可以用 v-on 指令绑定一个监听事件用于调用我们 Vue 实例中定义的方法

<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test-vuejs</title>
</head>
<body>
<div id="app">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">翻转信息</button>
</div>

<script src="./js/vue/vue.js"></script>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            message: 'Hello Vue.js!'
        },
        methods: {
            reverseMessage: function () {
                this.message = this.message.split('').reverse().join('')
            }
        }
    })
</script>
</body>
</html>

相关文章:

  • HTML/CSS常用的命名规则
  • Java googlecode JSON 解析示例
  • background-clip
  • Docker的常用命令-02
  • 【MongoDB】从入门到精通mongdb系列学习宝典,想学mongodb小伙伴请进来
  • SAS描述统计量
  • 老毛桃PE修改方法(屏蔽更改主页,屏蔽加装的绿色浏览器)
  • 2017年2月12日 WER学习总结
  • InfluxDB和MySQL的读写对比测试
  • 制作 OpenStack Linux 镜像 - 每天5分钟玩转 OpenStack(151)
  • HBase入门基础教程 HBase之单机模式与伪分布式模式安装
  • linux 创建sudo账号.md
  • Git基础之(十一)——远程仓库——从远程库克隆
  • 素数筛
  • ActiveMq持久化数据
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Angular 4.x 动态创建组件
  • bearychat的java client
  • chrome扩展demo1-小时钟
  • CSS居中完全指南——构建CSS居中决策树
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • es的写入过程
  • HTTP中GET与POST的区别 99%的错误认识
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java读取Properties文件的六种方法
  • Python socket服务器端、客户端传送信息
  • vagrant 添加本地 box 安装 laravel homestead
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Webpack 4 学习01(基础配置)
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 创建一种深思熟虑的文化
  • 基于webpack 的 vue 多页架构
  • 理清楚Vue的结构
  • 你真的知道 == 和 equals 的区别吗?
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 深度学习中的信息论知识详解
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 线上 python http server profile 实践
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • NLPIR智能语义技术让大数据挖掘更简单
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • (26)4.7 字符函数和字符串函数
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (zhuan) 一些RL的文献(及笔记)
  • (分布式缓存)Redis分片集群
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (七)c52学习之旅-中断
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ****Linux下Mysql的安装和配置
  • ***通过什么方式***网吧
  • .Net CF下精确的计时器
  • .net CHARTING图表控件下载地址
  • .net Signalr 使用笔记
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化