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': ...
随机推荐
- 小结 python 实战中遇到的几种需要化名的情境
笑来在<自学是门手艺>的<2.4.3 化名与匿名>中,讲到了函数的化名.经过几个月的实战,我发现,实际上化名无处不在.我有时也会称之为"别称",意思一样.函 ...
- SQLServer作业调用链接服务器失败解决办法
新建一个SQL作业,语句手动执行OK,但是作业计划执行总是报错. 消息已以用户 NT SERVICE\SQLSERVERAGENT 的身份执行. 链接服务器 "172.16.10.23&qu ...
- 我的第一个netcore2.2 api项目搭建(一)
早早就想入门netcore,一直没下定决心,这次正好碰上项目服务变更,便想着入坑试试,边学边用. 目标: 一.api使用core版的SqlSugar,集成orm,实现快速开发 二.api使用Swagg ...
- C#视频拍照、视频录制项目示例
1.AForge 2.WPFMediaKit 3.ffmpeg
- Mybatis事物浅谈
本篇文章主要对Mybatis事物进行基础的介绍.先回顾JDBC事物,再了解Mybatis里面的事物应用. 1.JDBC的事务管理回顾 JDBC的事务管理是基于Connection对象实现的: 开启事务 ...
- Matlab解释器模式
解释器模式(Interperter),给定一个语言,定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,实际开发中EL表达式或者正则表达式的解释器就是采用这种设计模式.其模式结构如下图.本文使 ...
- pandas-16 pd.merge()的用法
pandas-16 pd.merge()的用法 使用过sql语言的话,一定对join,left join, right join等非常熟悉,在pandas中,merge的作用也非常类似. 如:pd.m ...
- js实现数组去重(方式大汇总)
方法一:循环判断当前元素与其后面所有元素对比是否相等,如果相等删除:(执行速度慢) var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; function remove ...
- excel 宏循环行数据 ,Excel统计所有sheet数据行数 VBA
Sub fun1() '统计每一个sheet有多少行数据 Set s1 = Sheets("Sheet1") 'totalok = 0 To Sheets.Count s1.Cel ...
- 小程序mpvue怎么点击按钮获取button里面的值
在小程序里面是没有dom元素的,这个我们只要会小程序的应该都知道,但是在平时开发中我们偶尔会遇到需要点击某个元素获取它的值的情况,在这里给大家列举了两种情况解决方法 方式一:数据绑定 这种情况的话,对 ...