Vue学习(2)---v-指令和组件
Vue中的指令
Vue中以带有前缀V-的属性被称为指令(带有v表示他们是Vue提供的特殊attribute)
一个v-bind的例子
<div id="app" v-bind:title="message">
texttexttext
</div>
<script type="text/javascript">
var app=new Vue({
el:'#app',
data:{
message:'helloworld!'
}
})
这其中 v-bind表明将div元素的title属性与message保持一致
v-if v-for
v-if 可以控制一个元素是否显示(当然 v-show也可以 看名字就可以看出)
<div id="app" v-if="seen" v-on:click="handleOnClick">
{{message}}
</div>
<script type="text/javascript">
var app=new Vue({
el:'#app',
data:{
message:'helloworld!',
seen:true
},
methods:{
handleOnClick:function(){
this.seen=!this.seen;
}
}
})
这里用到了Vue中的v-if来控制元素的显示 v-on进行时间绑定 还有Vue中的methods属性
改变seen的值 即可改变元素的显示(与v-show的区别之后会写)
v-for 用来遍历一个数组来循环渲染项目
<div id="app">
<ul>
<li v-for="item in lists">{{item}}</li>
</ul>
</div>
<script type="text/javascript">
var app=new Vue({
el:'#app',
data:{
lists:['学编程死路一条','我嬲你妈妈憋类','妙啊~~~']
},
})
</script>

当我们改变lists的内容时 ul标签中内容也会发生改变
v-on 事件绑定
<div id="app">
{{message}}
<button v-on:click="handleOnClick">helloworld</button>
</div>
<script type="text/javascript">
var app=new Vue({
el:'#app',
data:{
message:'helloworld!',
seen:true
},
methods:{
handleOnClick:function(){
alert("helloworld");
}
}
})
</script>
通过v-on可以绑定各种事件
v-model 双向绑定
v-model 可以实现输入框和数据的双向绑定(一个改变,另一个也发生改变)
<div id="app">
<input v-model="message"></input>
<button v-on:click="handleOnClick">giaogiaogiao</button>
</div>
<script type="text/javascript">
var app=new Vue({
el:'#app',
data:{
message:'helloworld!',
seen:true
},
methods:{
handleOnClick:function(){
this.message="giaogiaogiao"
}
}
})
</script>


点击改变message的值后 input框中的数据也发生了改变
组件化的思想
Vue中很重要的一个思想就是组件化
试着想想 一个网页 可以拆成各个组件 比如 顶部 底部 侧边栏 内容主题
创建组件和使用的方式非常简单
<div id="app">
{{message}}
<new-component></new-component>
</div>
<script type="text/javascript">
Vue.component('newComponent',{
template:'<div>一个组件</div>'
})
var app=new Vue({
el:'#app',
data:{
message:'helloworld!'
}
})
</script>
需要注意的是 Vue中 我们声明组件的方式是驼峰命名 但是html不区分大小写 所以写成标签时要用-来区别
父子组件传值
现在我们已经可以将页面划分成各个组件了
但是子组件(myComponent)是无法使用父组件(app)的值 因此 我们需要一种方式将值传入子组件
v-bind
<div id="app">
{{message}}
<new-component v-bind:value="text"></new-component>
</div>
<script type="text/javascript">
Vue.component('newComponent',{
props:['value'],
template:'<div>{{value}}</div>'
})
var app=new Vue({
el:'#app',
data:{
message:'helloworld!',
text:"Father-value"
}
})
</script>
当我们使用v-bind 传值时候 需要再子组件中添加 props属性去接收这个值
官方文档:我们也需要为每个组件提供一个“key”,稍后再作详细解释
Vue学习(2)---v-指令和组件的更多相关文章
- vue学习04 v-on指令
vue学习04 v-on指令 v-on的作用是为元素绑定事件,比如click单击,dbclick双击 v-on指令可简写为@ 代码测试 <!DOCTYPE html> <html l ...
- vue学习06 v-show指令
目录 vue学习06 v-show指令 v-show指令是:根据真假切换元素的显示状态 原理是修改元素的display,实现显示隐藏 指令后面的内容,最终都会解析为布尔值(true和false) 练习 ...
- vue学习08 v-bind指令
目录 vue学习08 v-bind指令 v-bind指令的作用是为元素绑定属性 完整写法是v-bind:属性名,可简写为:属性名 练习代码为: 运行效果为: vue学习08 v-bind指令 v-bi ...
- vue 学习八 自定义指令
vue指令注册有两种方式 1 全局注册 在main.js中 使用vue.directive Vue.directive('alert_w', { inserted(el,bin,vn) { conso ...
- Vue学习之全局和私有组件小结(七)
一.组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用相应的组件即可. 二.组件和模块: 1.模块化:是从代码逻 ...
- vue学习-day03(动画,组件)
目录: 1.品牌列表-从数据库获取列表 2.品牌列表-完成添加功能 3.品牌列表-完成删除功能 4.品牌列表-全局配置数据接口的根域名 5.品牌列表-全局配置emulateJS ...
- VUE 学习笔记 一 指令
1.声明式渲染 v-bind 特性被称为指令.指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性 <div id='app'> <span v-bind:title=" ...
- vue学习笔记(1)—— 组件化实现todoList
一.环境搭建 1.npm 大型应用时推荐用npm安装,npm能很好的和webpack等模块打包器配合使用.具体安装步骤请参考网上的诸多教程.完成后使用如下命令安装vue. $ npm install ...
- Vue学习计划基础笔记(六) - 组件基础
组件基础 目标: 掌握组件的构建方式 掌握如何复用组件.父子组件如何传值.如何向父组件发送消息 掌握如何通过插槽分发内容 了解解析dom模板时的注意事项 了解动态组件 组件 组件理解起来大概上就和ph ...
随机推荐
- 【已解决】HDFS节点已经启动,但不能访问50070 ?
问题描述 通过start-dfs.sh启动了三个节点 但无法通过IP访问50070端口 问题分析 1.可能是防火墙没关,被拦截了 果然,防火墙没关 再将防火墙设为开机不启动 systemctl dis ...
- php通过单例模式使一个类只能创建一个对象。
单例模式也就是一个类只能创建出一个对象 首先你要知道它的基本思想为:三私一公! 何为三私一公? 1(私).防止用户通过构造方法创建对象,因此私有化构造方法. 2(公).创建一个公共静态函数用来进入 ...
- vscode使用cnpm报错
1.在wind10搜索框里输入 Windows PowerShell 进入这个界面 2.打开Windows PowerShell 之后 输入命令:set-ExecutjionPolicy Remot ...
- macOS Catalina 升级软件问题
最近升级macOS Catalina系统,升级失败时多尝试几次就可以执行成功了,在使用过程中发现以下问题,大家谨慎升级!!! 存在软件启动不兼容,不存在已软件激活失效问题. 有道词典不兼容,启动异常 ...
- scrapy框架xpath的几点说明
1.xpath返回的是一个列表 2.调用Selector对象的extract方法将返回选中内容的Unicode字符串 SelectorList对象调用extract_first() 方法会返回其中第一 ...
- Android开发:通过 webview 将网页打包成安卓应用
商业转载请联系作者获得授权,非商业转载请注明出处. For commercial use, please contact the author for authorization. For non-c ...
- 2000字读懂Java的来源
title: Java的来源 blog: CSDN data: Java学习路线及视频 1.Java市场 截至2020-03: Java的市场份额为17.78% 2. Java语言简介 是SUN(St ...
- gRPC(2):客户端创建和调用原理
1. gRPC 客户端创建流程 1.1 背景 gRPC 是在 HTTP/2 之上实现的 RPC 框架,HTTP/2 是第 7 层(应用层)协议,它运行在 TCP(第 4 层 - 传输层)协议之上,相比 ...
- Apache Shiro反序列化漏洞复现
Apache Shiro反序列化漏洞复现 0x01 搭建环境 获取docker镜像 Docker pull medicean/vulapps:s_shiro_1 重启docker system res ...
- 【2019HDU多校】第九场1006/HDU6685-Rikka with Coin——位运算打表
题目链接 题目大意 使用10.20.50.100元面额的硬币能分别组成题目给出的面额,需要最少的硬币个数 分析 一开始队友想用一堆if-else解决问题,然后WA了无数发-- 我想到了一种比较简单的打 ...