vue3学习笔记01、02

138 阅读2分钟

如何查看vue源码

github.com/vuejs/core/…

  • github git clone下源码,现在使用的是pnmp包管理工具,
  • npm install pnpm -g,
  • pnpm dev就会将项目打包至packages/vue/dist/vue.global.js下
  • 此时就可以创建一个demo利用createApp方式使用

02学习

methods中使用箭头函数,this对象将会改变

公众号codewhy看this的各种情况

  const foo = function() {
    console.log(this)
  }

  foo(); //隐式绑定,相当与执行window.foo();因此this绑定window

  const obj = {bar: foo};
  obj.bar(); //this指向obj
  
  const foo = () => {
    console.log(this)
  }  //当foo为箭头函数时,this全为window
 

vue遍历methods中的方法,将方法bind(this)再返回,因此方法中的this是proxy对象;

设置mastache

snippet-generator网站帮助生成模板 设置里的usersnippet里设置html.json 将要自动生成的模板粘贴自动生成,prefix中就是快捷指令

基本指令

    <!-- 只显示一次之后不会被渲染,其下的子组件也不会渲染 用做优化 -->
    <h2 v-once>{{message}}</h2>
    <!-- 等同于双括号写法 -->
    <h2 v-text="message"></h2>
    <!-- v-html将文本解析成html显示 -->
    <div v-html="txt"></div>
    <!-- v-pre不解析双括号的值 -->
    <div v-pre>{{message}}</div>
    <!-- v-clock 编译完成之前div css有v-clock属性当编译完成后去除,配合css display:none使用-->
    <div v-clock></div>
    <img v-bind:src="src"></img>
    <img :src="src"></img> //语法糖写法
   

class对象式写法

<div class="abc" :class="{'active': isActive, 'title': true}">喜喜</div>  //isActive为data中true或false
<!-- 绑定class数组写法 -->
<div :class="['abc', name, {active: isActive}]">数组绑定写法</div>
<!-- 动态绑定属性,属性名不一定时 -->
<div :[name]="value">啊哈</div>

v-bind绑定style对象语法

    <!-- v-bind绑定style -->
    <div :style="{color: 'red', fontSize: '20px'}">style样式</div>
    <div :style="finalStyle">style样式</div>
    <div :style="[style1Obj, style2Obj]">style样式</div>

动态绑定属性

    <!-- 动态绑定属性 -->
    <div v-bind="info">动态绑定属性</div>
 

结果

<div name="juju" age="18"><div>

v-on绑定事件

    <!-- v-on绑定一个对象 其中有多个事件 -->
    <div v-on="{click: btnClick, mousemove: mouseMove}">喜喜</div>

参数传递

<button @click="btnClick($enent, 'juju')">鼠标点击</button>
//什么都不传默认会有event参数

v-on修饰符

.stop 防止冒泡 .once 只触发一次 .left 只点击鼠标左键 .right 只点击鼠标右键 .enter 当@keyup键盘输入为回车触发