Vuejs基本使用
一、简单使用
①首先需要实例化vue:new 出来,注意Vue大小写
②通过el绑定元素:el 选项的作用就是告诉 Vue 管理模板的入口节点(不要绑定body和html)
③data:是响应式数据,就是数据驱动视图,当数据发生改变,那么所有绑定该数据的 DOM 都会跟着改变(MVVM)
<div id="app">
<h1>{{ 1 + 1 }}</h1>
<h1>{{ 'hello' + 'world'}}</h1>
<h1>{{ foo }}</h1>
<div>
<span>{{foo}}</span>
</div>
<p>{{foo}}</p> </div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
var app=new Vue({
el:'#app',
data:{
foo:'bar'
}
});
</script>

④Vue可以通过示例实例化的vue访问和更改data里的数据

二、双向数据绑定
①v-model 是 Vue 提供的一个特殊的属性,在 Vue 中被称之为指令
<div id="app">
<h1>{{ message }}</h1>
<h1>{{ message}}</h1>
<h1>{{ message }}</h1>
<div>
<span>{{message}}</span>
</div>
<p>{{message}}</p>
<input type="text" v-model="message">
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
var app=new Vue({
el:'#app',
data:{
message:'hello vuejs!!'
}
});
</script>

②它的作用就是:双向绑定表单控件,双向数据绑定是指当数据发生改变, DOM 会自动更新,当表单控件的值发生改变,数据也会自动得到更新

三、对比JavaScript原生DOM操作
①示例:姓名展示
<div class="app">
姓: <input type="text" value="王" id="firstname"><br>
名: <input type="text" value="五" id="lastname">
<p id="fullname">王五</p>
</div>
<script>
var firstname=document.getElementById("firstname");
var lastname=document.getElementById("lastname");
var fullname=document.getElementById("fullname"); firstname.addEventListener("input",handleTextInput);
lastname.addEventListener("input",handleTextInput); function handleTextInput(){
fullname.innerHTML=firstname.value+lastname.value
}
</script>

②示例:点击数字自增
<div id="app">
<input type="number" id="num" value="0">
<button id="btn">点击+1</button>
</div>
<script>
var btnobj=document.getElementById('btn');
var numobj=document.getElementById('num');
var number=numobj.value;
btnobj.onclick=function(){
number++;
document.getElementById('num').value=number;
}
</script>

③示例:简单加法计算器
<input type="number" id="num1">+<input type="number" id="num2">
<button id="btn">=</button>
<strong id="ret">0</strong>
<script>
var num1obj=document.getElementById('num1');
var num2obj=document.getElementById('num2');
var btnobj=document.getElementById('btn');
var retobj=document.getElementById('ret');
btnobj.onclick=function(){
retobj.innerHTML=Number(num1obj.value)+Number(num2obj.value);
}
</script>

四、使用Vuejs进行操作
①示例:姓名展示
<div id="app">
姓: <input type="text" v-model="firstname"><br>
名: <input type="text" v-model="lastname">
<p>{{firstname + lastname}}</p>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
new Vue({
el:'#app',
data:{
firstname:'王',
lastname: '五',
}
});
</script>

②示例:点击数字自增
<div id="app">
<input type="number" v-model="num">
<!-- v-on:click注册点击事件 -->
<button v-on:click="handleIncrement">点击+1</button>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
new Vue({
el:'#app',
data:{
num:0
},
//方法写在methods里
methods:{
handleIncrement:function(){
//this是app,app可以访问data的变量num
this.num++;
}
}
});
</script>

③示例:简单加减乘除计算器
<div id="app">
<input type="number" v-model="num1">+<input type="number" v-model="num2">
<button v-on:click="handlefun">=</button>
<strong>{{num3}}</strong>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
new Vue({
el:'#app',
data:{
num1:"0",
num2:'0',
num3:'0'
},
methods:{
handlefun:function(){
this.num3=Number(this.num1)+Number(this.num2);
}
}
});
</script>

五、结论
①vuejs的好处是不需要DOM操作(vue的内部已经处理有关DOM操作的部分),vue就像一个很高级的模板引擎
②vue先通过new实例化,通过el绑定一个管理程序入口,把页面需要操作的DOM,都通过数据绑定的方式来处理
③在vue中,通过模板绑定的数据都是响应式的,数据一旦变化,则绑定数据的视图元素也会改变
Vuejs基本使用的更多相关文章
- TODO:搭建Laravel VueJS SemanticUI
TODO:搭建Laravel VueJS SemanticUI Laravel是一套简洁.优雅的PHP开发框架(PHP Web Framework).可以让你从面条一样杂乱的代码中解脱出来:它可以帮你 ...
- 一次页面从Jq到Vuejs+PartialView的迁徙
题外话 本篇分享不能帮助你入门vue,入门的文章也是无意义的,官方文档http://cn.vuejs.org/v2/guide/ 已经写的不能再清晰了.希望我们勇敢的主动地给自己创造实践的机会. 手里 ...
- 使用vuejs框架进行列表渲染
爱编程爱分享,原创文章,转载请注明出处,谢谢!http://www.cnblogs.com/fozero/p/6170706.html 1.通过Script引入Vuejs框架 <script t ...
- Vuejs学习笔记1
首次写vue可能会出现:[Vue warn]: Cannot find element: #app 这是因为你的js在html页面头部引入的原因,自定义js文件要最后引入,因为要先有元素id,vue才 ...
- 【vuejs小项目——vuejs2.0版本】单页面搭建
http://router.vuejs.org/zh-cn/essentials/nested-routes.html 使用嵌套路由开发,这里会出错主要把Vue.use(VueRouter);要进行引 ...
- 【vuejs小项目】一、脚手架搭建工作
一.关于vuejs 这是一个MVVM的前端开发框架,model(数据).viewmode(通讯).view(视图),它吸取了reactjs和angularjs的长处,核心重点在于组件化的设计原则. 我 ...
- vuejs的动态过滤
想要通过vuejs动态过滤(这里动态指得是过滤的条件是动态变化的), 一直没找到好办法, 最蠢的办法当然是两个两个数组,一个作为原始副本数组 一个作为视图数组,这样当过滤条件变化的时候 动态拷贝原始数 ...
- 使用 v-cloak 防止页面加载时出现 vuejs 的变量名
使用 vuejs 做了一个简单的功能页面,逻辑是,页面加载后获取当前的经纬度,然后通过 ajax 从后台拉取附近的小区列表.但是 bug 出现了,在显示小区列表之前,会闪现小区名对应的 vuejs 变 ...
- vuejs里封装的和IOS,Android通信模块
项目需要,在vuejs开发的web项目中与APP进行通信,实现原理和cordova一致.使用WebViewJavascriptBridge. 其实也是通过拦截url scheme,支持ios6往前的系 ...
- [Vuejs] 关于vue-router里面的subRoutes
刚学习vue,可能有使用不对的地方,希望没有对大家造成困扰! 使用vue-router,为了能够更好的管理.vue文件,需要用到子路由. 先看个错误的例子 routers.js '/company': ...
随机推荐
- 『LCA 树链剖分』
LCA Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0).一个点的深度定义为这个节点到根 的距离+1. 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公 ...
- inux centos7下源码 tar安装5.7.26详解
inux centos7下源码 tar安装5.7.26图文详解 官网地址 https://dev.mysql.com/downloads/mysql/ 1.卸载Linux系统上自带的mysql插件(o ...
- 【mysql】新增列 时间戳
参考地址:https://www.cnblogs.com/SZxiaochun/p/9299392.html ALTER TABLE worksheet_data_12 ), ADD COLUMN ` ...
- C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)
C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳) 在使用 TcpClient 网络连接中常常会发生客户端连接异常断 ...
- 2017-07-26 ThinkPHP简单使用
ThinkPHP是什么?有何优点? ThinkPHP 是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架,ThinkPHP为WEB应用开发提供了强有力的支持,这些支持包括: * MVC支持 ...
- 前端有用的CSS属性和JS方法
1.CSS属性: 透明属性(值越大越不透明): IE:filter:alpha(opacity:30) Google:opacity:0.3 层次属性(值大的会在上面): z-index:100 2. ...
- Android.mk文件和Application.mk文件详解
Android.mk文件和Application.mk文件详解 相同点:都是轻量级 Makefile(Makefile文件定义一些列指令,指定文件编译顺序,类似shell脚本) Application ...
- 12306 抢票项目霸榜 GitHub,标星即将破万
十一将至,你买到回家的火车票了吗?如果没有,你可以试着打开 GitHub,在搜索栏键入 12306 的关键词,我相信你会发现一个新大陆.没错,这里有 1572 个抢票项目.它们大多用 Python.J ...
- java(包括springboot)读取resources下文件方式
1.使用项目内路径读取,该路径只在开发工具中显示,类似:src/main/resources/resource.properties.只能在开发工具中使用,部署之后无法读取.(不通用) File fi ...
- Django 之 restframework 解析器源码分析
解析器分类: 1. JSONPaser ----> 解析 JSON-serialized data (解析JSON序列化的数据) 2.FormParser ---->解析form 表单中 ...