当前位置: 首页 > 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持久化数据
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • github从入门到放弃(1)
  • gitlab-ci配置详解(一)
  • JavaScript HTML DOM
  • js ES6 求数组的交集,并集,还有差集
  • js写一个简单的选项卡
  • Laravel 中的一个后期静态绑定
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PermissionScope Swift4 兼容问题
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Solarized Scheme
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 大型网站性能监测、分析与优化常见问题QA
  • 来,膜拜下android roadmap,强大的执行力
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 微信小程序--------语音识别(前端自己也能玩)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 优化 Vue 项目编译文件大小
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • (30)数组元素和与数字和的绝对差
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)linux下的时间函数使用
  • .net 获取url的方法
  • .NET 设计模式初探
  • @RestControllerAdvice异常统一处理类失效原因
  • [17]JAVAEE-HTTP协议
  • [Big Data - Kafka] kafka学习笔记:知识点整理
  • [BT]小迪安全2023学习笔记(第29天:Web攻防-SQL注入)
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [codeforces]Recover the String
  • [DevOps云实践] 彻底删除AWS云资源
  • [iOS]Win8下iTunes无法连接iPhone版本的解决方法
  • [java刷算法]牛客—剑指offer链表有环的入口、反转链表、合并排序链表
  • [LeetCode]-225. 用队列实现栈-232. 用栈实现队列