详解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 select下拉框操作常用方法
Nov 09 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
Jul 15 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
jquery 选取方法都有哪些
May 18 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
原生js实现autocomplete插件
Apr 14 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
Vue中import from的来源及省略后缀与加载文件夹问题
Feb 09 Javascript
js中实现继承的五种方法
Jan 25 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/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
PHP 字符串操作入门教程
2006/12/06 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
可以文本显示的公告栏的js代码
2007/03/11 Javascript
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
JS合并数组的几种方法及优劣比较
2014/09/19 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
Python中变量交换的例子
2014/08/25 Python
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
实验教师岗位职责
2014/02/13 职场文书
小学六年级学生评语
2014/04/22 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
师德师风学习材料
2014/12/19 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书