VUE的学习_从入门到放弃(一)
一、vue的功能及作用
- 工作方式如下
1.不用操作DOM
2.单页面应用web项目 简称:SPA
3.当下各种新框架都采用的类似Vue或者类似React的语法去作为主语法,微信小程序/MpVue......
4.掌握Vue的开发语法,相当于掌握了新的开发模式,可以适应目前绝大多数的技术环境
- Vue特点
1.数据驱动视图,可以让我们只关注数据
2.MVVM双向绑定
3.通过指令增强了html功能
4.组件化,复用代码
5.开发者一般只关注数据
- Vue的安装及使用
1.直接通过路径引入,地址:https://vuejs.org/js/vue.min.js
2.直接下载在本地引入
3.采用npm安装的方式,命令:npm install vue
提示:注意Vue.js不支持IE8及其以下版本
示例demo:
<script src="https://vuejs.org/js/vue.min.js"></script>
<div id="app">
{{msg}}
</div> <script>
var vm = new Vue({
//el可以使用id选择器、calss选择器、dom对象
//el不能尝试使用html以及body
el:document.getElementById("app"),
data: {
msg:"Hello world!" },
});
</script>
在插值表达式中使用js表达式、三元运算符、方法调用 -->
<p>{{string}}</p>
<p>{{count == 100}}</p>
<p>{{count < 100}}</p>
<p>{{count+10}}</p>
<p>{{string.split("|")}}</p>
<p>{{count < 100?"小于":“大于}}</p>
指令--凡是以v-开头的都叫vue指令
- v-text和v-html 与 innerText和innerHTML相比较
- 插值表达式 1.是插入时的数据渲染 2.尚未渲染完成时会出现丑丑的大括号
- v-text、v-html是整体式的数据替换 2.尚未渲染完成时不会出现东西(渲染标签中事先有内容除外)
- 注意,非必要时尽量不要使用或者禁止使用v-html,因为会有xss跨站脚本攻击
<div id="app">
<p v-text ="string"> 1236</p>
<p v-html ="string">46413</p>
</div>
- v-if 更大的开销 适用于不平凡切换显示状态,并且初始渲染时不必渲染,多重判断时适合使用
- v-show 开销较小 适用于平凡切换显示状态
<p v-if ="isShow"> {{string}}</p>
<p v-show ="isShow">{{46413}}</p>
- v-on :click 简写(@click)
- @click.once只触发一次
- click.prevent 阻止默认事件
- click.stop 阻止冒泡事件
<button v-on:click="clickMe('Ultraman')">点击我</button>
<!-- click.once 只会触发一次 -->
<button @click.once="clickOnce">只触发一次</button>
<!-- click.prevent 阻止默认事件 -->
<a href="http://www.baidu.com" @click.prevent="stopjump">百度</a>
<div @click="alert(1)">
<!-- click.stop 阻止冒泡事件 -->
<div>
<div @click.stop="alert(3)">
我是div
</div>
</div>
</div>
- input标签 change v-bind模拟v-model的底层
<input type="text" @change="change">
<input type="text" v-bind:value="string" @input="inputChange($event)">
change(){
alert("数据改变了");
},
inputChange(e){
console.log("变了");
this.string = e.target.value;
}
- v-for 迭代;循环
<ul>
<!-- array是需要渲染的对象 而item是每次接受迭代对象的别名 -->
<li v-for="item in array">{{item}}</li>
<!-- 始终记住,第一个参数是获取每次迭代的数据,第二个参数看实际情况,如果是迭代数组,则为数组的索引 -->
<li v-for="item in objectArray">{{item.id}}----{{item.name}}</li>
<!-- 如果是迭代对象,则顺序不同,第一个参数是属性的value,第二个参数为属性的key,第三个参数才是索引 -->
<li v-for="obj in object">{{boj}}</li>
<li v-for="(v,k,i) in object">{{k}}--{{v}}--{{i}}</li>
<!-- for循环 -->
<li v-for="num in 10">{{num}}--指定数据</li>
</ul>
- v-bind 其作用是绑定标签上的所有属性
- 当标签上的属性变量或者动态的亦或需要改变的
- 简写“:”
<p v-bind:id="'ptest'"></p>
<p :id="idName"></p>
<p :class="showStyle?'p-style1':''">pppppp</p>
<p :class="'p-style1':showStyle">pppppp</p>
<p :class="'[bolder',showStyle?'p-style1':'p-style2']">pppppp</p>
<p :class="'[bolder',{'p-style1':'p-style2'}]">pppppp</p>
<p :style="color:'red'">ppppppp</p>
<button @click="changeColor">变色</button> CSS
<style>
.p-style1{
background-color: aquamarine;
color:red;
}
.p-style2{
background-color: aquamarine;
color:red;
}
</style>
- v-model、v-cloakd和v-once的作用
<div id="app" v-cloak>
{{msg}}
{{range}}
<br>
<!-- v-model 可以处理input、textArea、select、radio、checkbox、botton -->
<!-- c-cloak cue中自带的指令,作用是当加载完成后移除指令的属性 即,我们希望任何没有在加载完成前呈现的样式都可通过v-cloak呈现-->
<!-- v-once 使用该指令,页面视图只渲染一次 -->
<!-- <input type="text" :value="msg" @input="changeInput($event)"> -->
<input type="text" v-model="msg">
<input type="text" v-model="range">
<input type="range" v-model="range">
</div>
<script>
setTimeout(function(){
var vm = new Vue({
el:"#app",
data: {
msg:"Hello",
range:100
},
methods: {
changeInput(e){
this.msg = e.target.value;
}
},
});},5000)
至此,Vue的第一节就结束啦,如果你觉得有用,点个赞吧!
如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐];
如果您想转载本博客,请注明出处;
如果您对本文有意见或者建议,欢迎留言;
感谢您的阅读,请关注我的后续博客。
VUE的学习_从入门到放弃(一)的更多相关文章
- webpack 配置 Vue 多页应用 —— 从入门到放弃
webpack 配置 Vue 多页应用 -- 从入门到放弃 一直以来,前端享有无需配置,一个浏览器足矣的优势,直到一大堆构建工具的出现,其中 webpack 就是其中最复杂的一个,因此出现了一个新兴职 ...
- Vue快速学习_第一节
之前写CRM都是Django前后端一起写的,在大部分项目中实际上前后端是分离的,因此我们需要学习一个前端框架来进行前端页面的编写,这里选择了Vue进行学习,好了开始学习吧. 1.ES6部分知识点学习 ...
- 4.Docker容器学习之Dockerfile入门到放弃
原文地址: 点击直达 0x01 Dockerfile 编写 描述:Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内 ...
- Vue.js学习 Item1 --快速入门
我们以 Vue 数据绑定的快速导览开始.如果你对高级概述更感兴趣,可查看这篇博文. 尝试 Vue.js 最简单的方法是使用 JSFiddle Hello World 例子.在浏览器新标签页中打开它,跟 ...
- Vue快速学习_第二节
表单输入绑定(v-model) v-model 指令在表单 <input>.<textarea> 及 <select> 元素上创建双向数据绑定(注意只在表单这几个可 ...
- Vue快速学习_第三节
过滤器 局部过滤器(组件内部使用的过滤器,跟django的很像, filters: {过滤器的名字: {function(val, a,b){}}} 全局过滤器(全局过滤器,只要过滤器一创建,在任何组 ...
- Vue快速学习_第五节
axios安装及使用 网站文档地址:https://www.kancloud.cn/yunye/axios/234845 1.npm安装 cnpm install axios 2.// 在main.j ...
- Vue快速学习_第四节
获取原生的DOM方式($.refs) 给标签或者组件 添加ref <div ref = 'liu'>test</div> <Home ref = 'home'>&l ...
- 自学vue第二天,从入门到放弃(生命周期的理解)
生命周期的理解 beforeCreate 创建前 数据还没有监听,没有绑定到vue对象实例,同时也没有挂载对象 没有数据也没有方法 created 在创建后 数据和方法已经 data数据已经绑定好了 ...
随机推荐
- Linux FTP的主动模式与被动模式
Linux FTP的主动模式与被动模式 一.FTP主被动模式 FTP是文件传输协议的简称,ftp传输协议有着众多的优点所以传输文件时使用ftp协议的软件很多,ftp协议使用的端口是21( ...
- Output of C++ Program | Set 15
Predict the output of following C++ programs. Question 1 1 #include <iostream> 2 using namespa ...
- oracle(查询数据库对象1)
1 --查询表信息 2 xxx_tables--包含表的基本描述信息和统计信息 3 xxx_tab_columns--包含表中列的描述信息和统计信息 4 xxx_all_tables--包含当前数据库 ...
- Linux基础命令---htpasswd创建密码文件
htpasswd htpasswd指令用来创建和更新用于基本认证的用户认证密码文件.htpasswd指令必须对密码文件有读写权限,否则会返回错误码. 此命令的适用范围:RedHat.RHEL.Ubun ...
- go channel 概述
精髓 将资源读进内存-->共享内存,一个个进程/线程进行处理,这是常见模式.go channel 是一种直接在进程/线程之间传递资源的方式,即以通信来共享内存.这便是go的精髓. 扩展-一些名词 ...
- js格式化合计金额
var summoney=1040.010400000000000001; var totalMoney=parseFloat(summoney).toFixed(2); var arry=total ...
- C# 使用modbus 读取PLC 寄存器地址
使用的组件Nmodbus 定义参数,全局变量: //创建modbus实体对象 private static ModbusFactory modbusFactory; private static IM ...
- Redis cluster 集群部署和配置
目录 一.集群简介 cluster介绍 cluster原理 cluster特点 应用场景 二.集群部署 环境介绍 节点部署 启动集群 三.集群测试 一.集群简介 cluster介绍 redis clu ...
- 有个性的手动计划模式(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 任务工作表里默认的标题"工期"."开始时间"."结束时间"这些 ...
- CF1433B Yet Another Bookshelf 题解
Content 在一个仅有 \(0,1\) 这两个数的数列上,每次可以选择一段全为1的连续区间将其左移 \(1\) 或者右移 \(1\).现给出 \(t\) 次询问,每次询问给出一个长度为 \(n\) ...