详解Vue-基本标签和自定义控件


Posted in Javascript onMarch 24, 2017

按照国际惯例先安利:Useful-Open-Source-Android_3water.rar

上一篇把环境搭完了,然后把默认的8080内容跑通了,这一片尝试把常用的一些标签给学习一下(按钮啊,列表,图片啥的)

整篇都是跟着官方教程学,只是加入一系列自己的理解和分析,方便以后温故

默认环境已经帮我们把包结构建好了,如下

详解Vue-基本标签和自定义控件

index.html是我们的页面

main.js是让App.vue和页面产生关联的“挂载js文件“(不知道这么描述合适不合适,有问题欢迎提出)

App.vue就是我们具体的vue代码

vue本身对实际DOM进行了一层封装,我们的渲染等一系列行为其实都是在一个”虚拟dDOM”上进行操作,然后会刷新你需要刷新的地方,而不是整体刷新(这也就是性能相对好点一部分原因)

像React的render函数内渲染ui控件一样,vue是在一个<template></template>的便签下写自己的内容,像这样

<div id="app2">
 {{ msg }}
</div>

有学过js 的小伙都知道,这里的msg是一个带值的引用而不是一个'msg'而他的值来源于data{}下的属性 msg

完整代码如下

<template>
<div id="app2">
 {{ msg }}
</div>
</template>

<script>
export default {
 name: 'app2',
 data () {
 return {
  msg: 'Hello wjj!'
 }
 }
}
</script>

这就会在页面上打出 Hello wjj!了,不信你悄悄看

你的值属性都在data{}内,而一些诸如method,component则是和data{}平级的(这部分之后会有一个例子)
vue使用v-加上一些特殊属性形成 指令,诸如v-bind就可以响应式的让数据和DOM发生绑定,只要数据变了页面就会刷新,普通的文本试过了接下来我们试试按钮

按钮

<template>
<div id="app2">
 <p>{{ message }}</p>
 <button v-on:click="showlog">查看log</button>
 </div>
</template>

<script>
export default {
 name: 'app2',
 data () {
 return {
  message: 'Hello Vue.js!'
 }
 },
 methods: {
  showlog: function () {
  console.log(this.message)
  }
 }
}
</script>

这边用 v-on来响应onclick事件

把时间交由一个方法 showlog来处理,这个方法也没干啥事 打了一句log

详解Vue-基本标签和自定义控件

列表

普通的h5做一个列表需要<ol> <li>配合的组合拳,Vue几乎一致,值也是从data{}里返回来的,像这样

<template>
 <div id="app2">
 <ol>
  <li v-for="list in items">
  {{ list.text }}
  </li>
 </ol>
 </div>
</template>

<script>
export default {
 name: 'app2',
 data () {
 return {
  items:[
  { text : '123'},
  { text : '234' },
  { text : 345 },
  { text : 10086}
  ]
 }
 }
}
</script>

用v-for来修饰列表,这个命名也不是瞎取的 in前 是集合体 in后是集合属性(也就是item具体属性的key,这里是text,不信你 v-for后面随便改 铁定报错)

详解Vue-基本标签和自定义控件

这个也是绑定数据的,不信你控制台改改list的数据就知道了,结果一定会变

逻辑判断

有v-for那也一定有v-if,看了看api还真有 当v-if的值为false时,这个标签将不可见

<template>
 <div id="app2">
 <p v-if="isTrue">10086</p>
 </div>
</template>

<script>
export default {
 name: 'app2',
 data () {
 return {
  isTrue: true
 }
 }
}
</script>

你把 isTrue改成false 10086就不显示了(这里还能使用表达式,这部分知识点以后讲到)

用户输入

<template>
 <div id="app2">
 <p>{{ message }}</p>
 <input v-model="message">
 </div>
</template>

<script>
export default {
 name: 'app2',
 data () {
 return {
  message: hi wjj
 }
 }
}
</script>

api提供了v-model 指令提供了控件与数据的双向绑定,让我们很轻松的能获取输入内容 此处message的值会根据输入变化而变化,并不是一个常量

第一个自定义控件

首先我们在 src目录下新建一个目录 叫”component”,建一个mycomponent.vue文件,然后也让他打2句话吧

<template>
 <div id="mycomponent">
 <h1>我是第一个自定义控件</h1>
 <p>{{ msg }}</p>
 </div>
</template>

<script type="text/javascript">
 export default{
 data(){
  return{
  msg : "hi i am wjj"
  }
 }
 }
</script>

然后在我们的app.vue里调用他

<template>
<div id="app2">
 <p>{{ message }}</p>
 <input v-model="message"></input>
 <mycomponent></mycomponent>
</div>
</template>

<script>
import mycomponent from './component/mycomponent.vue'
export default {
 name: 'app2',
 data () {
 return {
  message: 'Hello Vue.js!'
 }
 },
components: { mycomponent }
}
</script>

这里 有几个知识点

1.Vue的导入操作是在<script></script>标签里。

2.如果存在子/父控件的概念的话,一定要先初始化/加载子控件 。

效果如下:

详解Vue-基本标签和自定义控件

教程的第一个大章节就浓缩完了,非常简短简单,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript在一段文字中的光标处插入其他文字
Aug 26 Javascript
js为空或不是对象问题的快速解决方法
Dec 11 Javascript
node.js中的querystring.unescape方法使用说明
Dec 10 Javascript
jQuery.each使用详解
Jul 07 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
May 16 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
JS库之Particles.js中文开发手册及参数详解
Sep 13 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
Vue解决移动端弹窗滚动穿透问题
Dec 15 Vue.js
uniapp 微信小程序 自定义tabBar 导航
Apr 22 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 #Javascript
jQuery编写textarea输入字数限制代码
Mar 23 #jQuery
移动端刮刮乐的实现方式(js+HTML5)
Mar 23 #Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
Mar 23 #Javascript
jquery实现全选、全不选以及单选功能
Mar 23 #jQuery
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 #jQuery
纯jQuery实现前端分页功能
Mar 23 #jQuery
You might like
如何写php程序?
2006/12/08 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
2014/05/08 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
js倒计时显示实例
2016/12/11 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JS原生轮播图的简单实现(推荐)
2017/07/22 Javascript
详解angularjs获取元素以及angular.element()用法
2017/07/25 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
R vs. Python 数据分析中谁与争锋?
2017/10/18 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
pandas的qcut()方法详解
2019/07/06 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
如何用python批量调整视频声音
2020/12/22 Python
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
一名毕业生的自我鉴定
2013/12/04 职场文书
装修致歉信
2014/01/15 职场文书
党员岗位承诺书
2014/03/25 职场文书
小学老师寄语大全
2014/04/04 职场文书
教师先进工作者事迹材料
2014/05/01 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
经营理念口号
2014/06/21 职场文书
财务部岗位职责
2015/02/03 职场文书
老员工辞职信范文
2015/05/12 职场文书
家长会后的感想
2015/08/11 职场文书