详解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 函数调用的对象和方法
Jul 01 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 Javascript
Javascript无阻塞加载具体方式
Jun 28 Javascript
javaScript如何处理从java后台返回的list
Apr 24 Javascript
jQuery的bind()方法使用详解
Jul 15 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
Aug 02 Javascript
基于javascript 显式转换与隐式转换(详解)
Dec 15 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
Aug 25 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
个人小程序接入支付解决方案
May 23 Javascript
JS使用正则表达式判断输入框失去焦点事件
Oct 16 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 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实现的在线人员函数库
2008/04/09 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
详解基于Bootstrap扁平化的后台框架Ace
2015/11/27 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
AngularJs导出数据到Excel的示例代码
2017/08/11 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
js实现时钟定时器
2020/03/26 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
详细解析Python当中的数据类型和变量
2015/04/25 Python
Python字符串替换实例分析
2015/05/11 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
python入门教程之基本算术运算符
2020/11/13 Python
Django中使用Celery的方法步骤
2020/12/07 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
CLR与IL分别是什么含义
2016/08/23 面试题
sealed修饰符是干什么的
2012/10/23 面试题
金属材料工程个人求职的自我评价
2013/12/04 职场文书
项目经理任命书
2014/06/04 职场文书
2015年语言文字工作总结
2015/07/23 职场文书
2019个人半年工作总结
2019/06/21 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python