vue的深入理解

1.vue的初步认识

<div id = 'vue_det'>

<div>

var data = { site: "csdn", url: "www.runoob.com", alexa: 10000}

var vm = new Vue({

el: '#vue_det',

data: {}

})

document.write(vm.$data === data) // true

document.write("<br>") // true

document.write(vm.$el === document.getElementById('vue_det')) // true

new vue可以理解为存入不同类型的对象一个集合,在该例子中,存入了div的对象即vm.$el,也存入了data,例如vm.$data

2.使用new vue给标签赋值

<div id="vueAndMode">
    <p>{{content}}</p>
</div>
new Vue({
    el:'#vueAndMode',
    data:{
        content:"标题"
    }
})

new vue通过el得到父标签div,可给所有的子标签赋值

3.v_bind的使用及作用

<div id="bind">
    <input v-bind:value = 'name'/>
</div>
</body>
<script>
    new Vue({
        el:'#bind',
        data:{
            name:"109010"
        }
    })
</script>

为什么要用到v_bind的?

使用了v-bind 之后才可以才能给input的value ,a中href赋值,如果没有使用者不能给与这些属性赋值,{{}}只适合赋值标签的中间例如<p>{{}}</p>

4.v-mode的使用及作用

v-mode可以双向传递数据

<div id="v-mode">
    <input v-model="price" placeholder="请输入密码"  value="{{data.price}}">
   <p>{{price}}</p>
</div>

new Vue({
    el: '#v-mode',
    data: {
          price: 'hhh'
      }
});

v-mode和v-bind对比及区别?

v-mode实际上就是基于v-bind的,但是v-mode会比v-bind多一些功能,

<input v-model="price"   value="{{data.price}}">相当于

<input v-bind:value="price" v-on:input="price = $event.target.value" />

要理解这行代码,首先你要知道 input 元素本身有个 oninput 事件,这是 HTML5 新增加的,类似 onchange ,每当输入框内容发生变化,就会触发 oninput ,把最新的value传递给 price。

回到上面两个例子,该例子中v-mode跟上一个v-bind的赋值对比,实现了同样的效果但是写法不一样,看<input v-bind:value=' ' 和value ={{data.price}},写法,v-bind通过v-bind绑定数据,从而获取data的数据,v-mode可以把new vue中data数值给input中的value,因为v-mode是基于v-bind实现的,但是如果input的值发生了变化,price:'hhh'的值也会变化成input的value值,两者是相互的

5.props的作用及使用

<div id="appprop">
    <child message="通过 Prop 向子组件传递数据!!"></child>
</div>
Vue.component('child', {//child模板通过props桥接把div中child获取来,并在template利用
    // 声明 props
    props: ['message'],
    template: '<span>{{ message }}</span>'
})
new Vue({
    el: '#appprop'
})

props的作用要和组件合起来使用,因为props就是向子组件(template)传递数据的

5.1 props第二个例子

<!-------3333v-bind 来动态传递 prop------->
<div id="div12">  <!-------忽略div12,重视blog-post组件和下面Vue.component相关连,实际上两个是组合的
                    ,new vue data获取div12,通过v-bind把new vue的数据绑定到组件中,下面就是读取数据------->
    <blog-post v-for="z_data in z_datalist"  v-bind:z_post="z_data"></blog-post>
</div>
  Vue.component('blog-post', {
      props: ['z_post'],
      template: `
  <div class="blog-post">
    <h3>{{ z_post.title }}</h3>
    <div v-html="z_post.name"></div>
    <h5>{{ z_post.sex }}</h5>
  </div>
`
  })
new Vue({
    el: "#div12",
    data: { z_datalist: [
        { id: 1, title: '个人信息' ,name:'小李',sex:'男'}, { id: 2, title: '个人信息' ,name:'小h红',sex:'女'}, { id: 3, title: '个人信息' ,name:'小明',sex:'男' }
        ]
    }
})

该例子的业务过程

 

首先 vue.compant通过props:[‘z.post‘]获取<blog-post><blog-post/>中的z_post值,而blog-pos组件算属于new vue下的id为div12的字标签,new vue中的data可以向所有子标签传递数据,即把值给与了z_post ,通过v-bind:z_post和props的桥接给了template

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值