详解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 相关文章推荐
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
Sep 05 Javascript
jquery操作checked属性以及disabled属性的多种方法
Jun 20 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
Sep 23 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
JS继承之借用构造函数继承和组合继承
Sep 07 Javascript
通过JS获取Request.QueryString()参数的值实现方法
Sep 27 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
jQuery插件Validation表单验证详解
May 26 jQuery
TypeScript中使用getElementXXX()的示例代码
Sep 12 Javascript
微信小程序实现侧边栏分类
Oct 21 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/11/25 PHP
PHP 编写大型网站问题集
2010/05/07 PHP
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JavaScript Event学习第二章 Event浏览器兼容性
2010/02/07 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
python 上下文管理器使用方法小结
2017/10/10 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
python使用matplotlib绘制热图
2018/11/07 Python
python爬虫超时的处理的实例
2018/12/19 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
2020/01/20 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
会计试用期自我评价
2015/03/10 职场文书
会计求职信怎么写
2015/03/20 职场文书
关于倡议书的范文
2015/04/29 职场文书
无工作证明怎么写
2015/06/15 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
分析Python list操作为什么会错误
2021/11/17 Python