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': ...
随机推荐
- 集合单列--Colletion
集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型 ...
- Java 8 New Features
What's New in JDK 8 https://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html Java Pla ...
- C++ 中的静态成员函数与静态成员变量
于CSDN 2014-01-17 与静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分.如果要在类外调用公用的静态成员函数,要用类名和域运算符"∷".如Box∷volu ...
- pandas-20 DataFrame()的基本操作
pandas-20 DataFrame()的基本操作 感觉上pandas的DataFrame就像numpy中的矩阵,不过它拥有列名和索引名,实际操作起来会更方便一些. 如: df = pd.read_ ...
- C#将异常信息添加到日志
C#将程序抛出的异常信息添加到错误日志 错误日志是软件用来记录运行时出错信息的文本文件.编程人员和维护人员等可以利用错误日志对系统进行调试和维护. 为程序添加错误日志的好处是当程序有运行错误时,根据错 ...
- Html中Css页面跳转问题
没有指定<a>的target属性值时,默认是"_blank,可以参考以下代码的设置来控制<a href="#" target="_blank& ...
- JavaScript 变量与注释
一.变量 ECMAScript 的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据. 换句话说,每个变量仅仅是一个用于保存值的占位符而已.定义变量时要使用 var 操作符(注意 var 是 ...
- ObjC: 源文件的组织
转自:http://marshal.easymorse.com/tech/objc-%e6%ba%90%e6%96%87%e4%bb%b6%e7%9a%84%e7%bb%84%e7%bb%87 最简单 ...
- 英语fraunce法兰西
fraunce 外文词汇,中文翻译为代指法兰西(地名) 中文名:法兰西 外文名:fraunce 目录 释义 Fraunce 读音:英 [frɑ:ns] 美 [fræns] Noun(名词) 1. ...
- C# 7可以在.NET Framework 4上运行吗?
https://stackoverflow.com/questions/42482520/does-c-sharp-7-0-work-for-net-4-5 To sum up: All of C# ...