vuejs研究记录

vuejs研究记录

研究依据:
https://cn.vuejs.org/v2/guide/syntax.html
创建一个新的vue项目步骤:
https://www.jianshu.com/p/02b12c600c7b

组件化应用构建

script标签下添加注册vue组件“todo-item”,之后它可以作为vue标签进行使用.
创建一个新的

 // 定义名为 todo-item 的新组件
    Vue.component('todo-item', {
      // todo-item 组件现在接受一个
      // "prop",类似于一个自定义 attribute。
      // 这个 prop 名为 todo。
      props: ['todo'],
      template: '<li>{{ todo.tet }}</li>'
    });
    var app7 = new Vue({
      el: '#app-7',
      data: {
        groceryList: [
          { id: 0, tet: '蔬菜' },
          { id: 1, tet: '奶酪' },
          { id: 2, tet: '随便其它什么人吃的东西' }
        ]
      }
    })

页面中引用刚刚创建的todo-item组件,使用 v-for 遍历 groceryList 中每个item({}中的内容)。
prop(即todo)与 groceryList 中每个item 绑定

<div id="app-7">
      <ol>
          //现在我们为每个 todo-item 提供 todo 对象todo 对象是变量,即其内容可以是动态的。
        <todo-item
          v-for="item in groceryList"
          v-bind:todo="item"
          v-bind:key="item.id"
        >
        </todo-item>
      </ol>
    </div>

完成通过 prop 来与父单元解耦。

基础指令

v-bind:
动态绑定一个或一组指令or组件,在绑定属性时,写法类似HTML标签里的属性,但要在属性前添加“:”或者“v-bind”

html:
<p style="xxx"></p>
<img src="xxx.jpg"/>

vue:
<p v-bind:style="xxx"></p>
<img :src="xxx.jpg"/>

v-on:
用于监听DOM事件

计算属性与调用方法

eg1:计算属性

 <!--  计算属性  对应vm8 -->
    <div id="example">

      <p>ORINGINS message:{{message}}</p>
      <p>Computed reversed message: "{{ reversedMessage }}"</p>
    </div>
    //计算属性
    var vm8=new Vue({
        el:'#example',
        data:{
            message:'Hello'

        },
        computed:{
           // 声明一个计算属性名为 reverseMessage
           
           reversedMessage: function () {
           // 这个function作用是通过message,使页面get到vm8.reverseMessage
           
           // 这里的this只带vm8实例


            return this.message.split('').reverse().join('')
          }
        }
        //通过开发者选项修改vm8.message的值来动态更改相应的reverseMessage

eg2:表达式中调用方法

<div id="example">

      <p>ORINGINS message:{{message}}</p>
      <p>Computed reversed function message2: "{{ reversedMessage2() }}"</p>
    </div>
    //表达式中调用方法
    var vm8=new Vue({
        el:'#example',
        data:{
            message:'Hello2'
        },
       
       methods:{
         reversedMessage2:function(){
          return this.message.split('').reverse().join('')
         }
       }
    });

侦听属性

依靠watch来实现对自身属性的监测

计算属性的getter和setter

    var vm8=new Vue({
        el:'#example',
        data:{
            message:'Hello',
            },
       computed:{
          
          fullname:{
            get:function(){
              return this.firstname+''+this.lastname;
            },
            set:function(newname){
              var names=newname.split(' ')
              this.firstname=names[0]
              this.lastname=names[names.length-1]
            }
          }
           
        }
        });

f12运行

vm8.fullname='a b';

得到结果:

vm8.firstname;
"a"
vm8.lastname;
"b"

侦听器watch

记录暂缓。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值