当前位置:首页 > 开发 > 互联网 > 正文

vue开发体验

发表于: 2016-03-21   作者:Baiang   来源:转载   浏览:
摘要: vue开发体验记录下vue开发过程中的一些理解,如有不足,希望大家多多提意见。v-bind属性绑定vue里面的数据绑定,是一种常见的元素操作,如v-bind:src,v-bind:class,v-bind:style等等。//html代码 //js代码 data:{ isA:true, isB:false } 渲染为 这是个官网的例子,再举一个常见的。我们一般对网页图

vue开发体验

记录下vue开发过程中的一些理解,如有不足,希望大家多多提意见。

v-bind属性绑定

vue里面的数据绑定,是一种常见的元素操作,如v-bind:src,v-bind:class,v-bind:style等等。

//html代码
<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }"></div>

//js代码
data: {
    isA: true,
    isB: false
}

渲染为
<div class="static class-a"></div>

这是个官网的例子,再举一个常见的。我们一般对网页图片优化,需要考虑对图片懒加载(延迟加载)会写如下代码:

<img data-original="images/1.jpg" src="/js/grey.gif" />

1.jpg为需要加载的图片,grey.gif为加载前等待图片(图片高度只有1px),再引入js代码,进行控制修改,繁琐又不够灵活。而vue解决了这个问题。

<img v-bind:src="imgUrl"> 

ajax请求数据图片链接地址,写入data,监测到imgUrl变化,自动更新视图。后期可以根据具体的需求,做出相应的扩展。

组件开发

Vue是专门view数据渲染的MVVM框架,其中最核心的是组件开发。组件注册后便可以用在父实例的模块中,以自定义元素的形式使用要确保在初始化根实例之注册了组件。这是官网的描述,重点是先注册组件,再初始化根实例Vue,否则组件注册失败。

全局组件注册

//html代码
<my-component></my-component>

//js代码
Vue.component('my-component', {
    template: '<div>A custom component! <my-c1></my-c1></div>'
})

局部组件注册

局部注册组件,只能使用在父组件模板内

//html代码
<div id="Parent"></div>

//js代码
var Parent = Vue.extend({
    template: '<div>I\'m Parent, My children: <my-c1></my-c1></div>',
    components: {
          //只能用在父组件模板
          'my-c1':{
                template: '<div>A custom component!</div>'
           }
     }
 })

//组件实例化
 new Parent({
        el: '#Parent'
 })

在组件命名上出现大写,如<my-c1Name></my-c1Name>,组件是注册失败。

组件通讯

组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。

props

“prop”是组件数据的一个字段,期望从父组件传下来

//html代码
<child msg="hello!"></child>

//js代码
 Vue.component('child', {
      // 声明 props
      props: ['msg'],
      // prop 可以用在模板内
      // 可以用 `this.msg` 设置
      template: '<span>{{ msg }}</span>'
  })

//渲染为
<span>hello!</span>

动态 Props

与v-bind属性绑定结合使用

//html代码
<child :msg="hello!"></child>

//js代码
Vue.component('child', {
      // 声明 props
      props: ['msg'],
      // prop 可以用在模板内
      // 可以用 `this.msg` 设置
      template: '<span>{{ msg.a }}</span>'
    })
new Vue({
    el: '#app',
    data:{
        msgs: {
            a: 1
        }
    }
})

与v-mode结合v-bind结合一起使用

//html代码
<input v-model="parentMsg">
  <br>
<child :message="parentMsg"></child>

//js代码
Vue.component('child', {
  // 声明 props
  props: ['message'],
  // prop 可以用在模板内
  // 可以用 `this.msg` 设置
  template: '<span>{{ message }}</span>'
})

new Vue({
    el: '#app',
    data:{
        parentMsg: 'Message from parent'
    }
})

参考文档

  • vue.js官网http://cn.vuejs.org/guide/

 

vue开发体验

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
以实际功能站点来讲述 KarriGell 的愉快应用 ::-- ZoomQuiet [2005-12-10 11:45:59] 1. 缘起 1.1. K
1 下载jdk.16+ Eclipse3.2.2+ EclipseMe 1.7.9+ sun_java_wireless_toolkit-2_5_2-windows.exe 2 安
一、先创建一张mongo表,右击已创建的数据库test,点击addcollection.. 输入Collection Name,点击o
一、先创建一张mongo表,右击已创建的数据库test,点击addcollection.. 输入Collection Name,点击o
一、先创建一张mongo表,右击已创建的数据库test,点击addcollection.. 输入Collection Name,点击o
转自:http://my.oschina.net/u/1026531/blog/188336 一、先创建一张mongo表,右击已创建的数据库te
众所周知最近几年前端发展非常的迅猛,除各种框架如:backbone、angular、reactjs外,还有模块化开
目录导航 ● 自定义操作栏 ● 使用操作栏作为应用程序的导航 ● 使用Android菜单系统 ● 选择操作栏
先从Controller入手,用户登录,经过路由转发,到达Controller类,在Action中进行对应的处理。 1.登
/*/调用方法: Pop(this,{ pos:3,//上;右;下;左 tim:3000, oft:{x:10,y:0}, htm:'这是需要显示的内容
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号