谈谈我对Vue的理解

vue就是前端上的Java,前端上的C#。有个前端的虚拟DOM引擎,设计理念和Java,C#类似。我们只需要告诉DOM应该显示什么,而不用去操作DOM元素。

如何引用?

下面是一个helloWord,大家运行感受一下。

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<meta charset="utf-8">
</head>
<body>
<div id="app">
<!--使用 v-cloak能够解决插值闪烁问题-->
<p>{{msg}}</p> </div>
<script type="text/javascript">
//VM层
var vm = new Vue({
el:'#app',//表示,当前我们new这个vue的实例,要控制页面上的哪个区域
//M层
data:{//data属性中存放的是el中要用的数据
msg:'HelloWorld'//通过Vue提供的指令,很方便的就能把数据渲染到页面上,程序员不用再操作dom元素了。
}
})
</script>
</body>
</html>

运行效果如下:

这里当导入了vue.js库后,里面会有个Vue的构造器,对应着div。vue构造器中里面的el绑定div,data绑定数据。

解决闪烁问题:

相信新手都遇到过这个问题:

能看到{{msg}}是不是很没有B格?

这时候加个v-cloak属性即可解决

代码如下:有注释肯定能看懂。

<!DOCTYPE html>
<html>
<head>
<title></title> <meta charset="utf-8">
<style type="text/css">
[v-cloak]{
display:none;
}
</style>
</head>
<body>
<div id="app">
<!--使用 v-cloak能够解决插值闪烁问题-->
<p v-cloak>{{msg}}</p> </div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<script type="text/javascript">
//VM层 var vm = new Vue({
el:'#app',//表示,当前我们new这个vue的实例,要控制页面上的哪个区域
//M层
data:{//data属性中存放的是el中要用的数据
msg:'欢迎学习Vue'//通过Vue提供的指令,很方便的就能把数据渲染到页面上,程序员不用再操作dom元素了。
}
})
</script>
</body>
</html>

这时候就看不见{{msg}}了

v-bind指令:

v-bind是vue中提供的用于绑定属性的指令实例代码如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<meta charset="utf-8">
<style type="text/css">
[v-cloak]{
display:none;
}
</style>
</head>
<body>
<div id="app">
<!--使用 v-cloak能够解决插值闪烁问题-->
<p v-cloak>{{msg}}</p>
<input type="button" v-bind:value="value">
</div>
<script type="text/javascript">
//VM层 var vm = new Vue({
el:'#app',//表示,当前我们new这个vue的实例,要控制页面上的哪个区域
//M层
data:{//data属性中存放的是el中要用的数据
msg:'欢迎学习Vue'//通过Vue提供的指令,很方便的就能把数据渲染到页面上,程序员不用再操作dom元素了。
,value:'按钮'
}
})
</script>
</body>
</html>

运行结果:

可以看到bind能够绑定属性值。

原理:v-bind会把原属性值变成js变量解析。

注意:v-bind指令可以被简写位:要绑定的属性

v-bind中可以写合法的js表达式。

v-on指令:

Vue中提供了v-on事件绑定机制。

示例代码如下:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<meta charset="utf-8">
<style type="text/css">
[v-cloak]{
display:none;
}
</style>
</head>
<body>
<div id="app">
<!--使用 v-cloak能够解决插值闪烁问题-->
<p v-cloak>{{msg}}</p>
<input type="button" v-bind:value="value" v-on:click="show">
</div>
<script type="text/javascript">
//VM层 var vm = new Vue({
el:'#app',//表示,当前我们new这个vue的实例,要控制页面上的哪个区域
//M层
data:{//data属性中存放的是el中要用的数据
msg:'欢迎学习Vue'//通过Vue提供的指令,很方便的就能把数据渲染到页面上,程序员不用再操作dom元素了。
,value:'按钮'
},
methods:{//这个methods属性中定义了当前Vue实例所有可用的方法
show: function(){
alert("Hello");
}
}
})
</script>
</body>
</html>

截止如下: 我们掌握了如何定义一个基本的Vue代码结构,插值表达式,v-cloak,v-html,v-bind v-on 。

Vue新手入门教程的更多相关文章

  1. 安卓自动化测试(2)Robotium环境搭建与新手入门教程

    Robotium环境搭建与新手入门教程 准备工具:Robotium资料下载 知识准备: java基础知识,如基本的数据结构.语法结构.类.继承等 对Android系统较为熟悉,了解四大组件,会编写简单 ...

  2. Xorboot-UEFI新手入门教程

    Xorboot-UEFI新手入门教程        Xorboot-UEFI是一款UEFI下轻量级的图形化多系统引导程序,pauly于2014年国庆节期间发布了预览版.搜了下论坛,关于Xorboot- ...

  3. Vue.js 入门教程

    Vue.js 入门教程:https://cn.vuejs.org/v2/guide/index.html

  4. gulp的使用以及Gulp新手入门教程

    Gulp新手入门教程 原文  http://w3ctrain.com/2015/12/22/gulp-for-beginners/ Gulp 是一个自动化工具,前端开发者可以使用它来处理常见任务: 搭 ...

  5. 【LaTeX】E喵的LaTeX新手入门教程(6)中文

    假期玩得有点凶 ._.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版 [LaTeX]E喵的LaTeX新手入门教程(3)数学公式 ...

  6. 【LaTeX】E喵的LaTeX新手入门教程(4)图表

    这里说的不是用LaTeX画图,而是插入已经画好的图片..想看画图可以把滚动条拉到底.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础 ...

  7. 【LaTeX】E喵的LaTeX新手入门教程(5)参考文献、文档组织

    这不是最后一篇,明天开始建模所以会从6号开始继续更新.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版 [LaTeX]E喵的La ...

  8. 【LaTeX】E喵的LaTeX新手入门教程(3)数学公式

    昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...

  9. 【LaTeX】E喵的LaTeX新手入门教程(1)准备篇

    昨天熄灯了真是坑爹.前情回顾[LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新手入门教程(2)基础排版上一期测试答案1.大家一开始想到的肯定是\LaTeX{}er ...

随机推荐

  1. LD_PRELOAD & putenv() 绕过 disable_functions & open_basedir

    这次TCTF中一道题,给出了一个PHP一句话木马,设置了open_basedir,disable_functions包含所有执行系统命令的函数,然后目标是运行根目录下的/readflag,目标很明确, ...

  2. iOS 国际本地化(对新项目集成和已有项目集成)

    第一推荐一篇金先生的博客,受益非浅,在这里真诚的感谢 https://www.jianshu.com/p/7cb0fad6d06f金小白 首先金小白先生把两种方式都做了介绍,第一种我就不在过多详细的讲 ...

  3. MySQL分组查询统计

    GROUP BY 1.有个店铺表,字段为区域id,设备数量,店铺名称,如下: 2.如何按区域 district 统计 每个区域的设备数量,SQL如下 SELECT district, SUM( dev ...

  4. typora使用说明

    一级标题 # 空格 编写内容 二级标题 ## 空格 编写内容 有序内容 1.+Tab 无序内容 -+Tab 代码块 print("hello wrold") typora快捷键 c ...

  5. Matplotlib Date Index Formatter 日期索引格式化学习

    官方网站:https://matplotlib.org/gallery/ticks_and_spines/date_index_formatter2.html#sphx-glr-gallery-tic ...

  6. requests---发送post请求完成登录

    前段时间写过一个通过cookies完成登录,今天我们写一篇通过post发送请求完成登录豆瓣网 模拟登录 1.首先找到豆瓣网的登录接口 打开豆瓣网站的登录接口,请求错误的账号密码,通过F12或者抓包工具 ...

  7. JAVA基础复习(重点)

    一. 初识Java编程 1.           Java开发环境 JDK Java开发工具 JVM Java虚拟机 JRE Java运行环境 2.实现第一个hello world public cl ...

  8. Vue工程化入口文件main.js中Vue.config.productionTip = false含义

    阻止启动生产消息,常用作指令.通俗理解为消息提示的环境配置. 阻止启动生产消息 這又是什麽意思? 看下效果 (1)Vue.config.productionTip = false (2)Vue.con ...

  9. Educational Codeforces Round 78 (Rated for Div. 2) --补题

    链接 直接用数组记录每个字母的个数即可 #include<bits/stdc++.h> using namespace std; int a[26] = {0}; int b[26] = ...

  10. aiomysql

    aiomysql: import aiomysql import asyncio async def aiomysql_test(): loop = asyncio.get_event_loop() ...