Vue基础二(上)

Vue基础二(上)

1. 面试题

  • vue数据驱动原理是什么?
  • vue双向数据绑定原理是什么?
  • vue深入响应式原理是什么?
    • 深入响应式指的就是数据驱动
    • 底层实现 - es5特性 -> Object.definePropty
<body>
  <div id="box"></div>
  <button> 修改数据 </button>
  <input type="text" name="" id="">
</body>
<script>
  var box = document.querySelector('#box')
  var btn = document.querySelector('button')
  var input = document.querySelector('input')

  var model = { //这里定义了一个数据,这个数据是一个对象
    info: 'Vue'
  }

  input.onkeyup = function ( e ) {

    // Object.defineProperty( 对象,对象的属性,对对象属性的配置 )
    Object.defineProperty( model, 'info', {
      /* 存储器 getter & setter */
      get: function () {//get可以给对象做一次初始化赋值
        return e.target.value
      },
      set: function ( val ) {
        console.log( val )
        box.innerHTML = val 
      }
    })
    box.innerHTML = model.info
  }
  btn.onclick = function () {
    model.info = "node.js"// 数据修改了
  }
</script>
  • Vue是通过数据劫持和事件的订阅发布来实现的,数据劫持指的是Vue通过observer观察者对象对data选项中的数据进行getter和setter设置【 Object.defineProperty 】,事件的订阅发布指的是Vue通过事件来监听,通知Vue进行视图更新
  • 监听: 选项/watch

2. 模板语法

mustache语法中支持js

1. 用法:
	<body>
	  <div id="app">
	    <!-- 内容用法 -->
	    <p> {{ info }} </p>
	    <!-- 属性用法 -->
	    <input type="text" v-model = "info">
	    <img src=" info " alt="">
	  </div>
	</body>
	<script src="../../lib/vue.js"></script>
	<script>
	  /* 
	    mustache  双大括号语法
	    用法有两种
	      1. 内容里面用  加 {{}}
	      2. dom属性上用  不加 {{}}
	  */
	  new Vue({
	    el: '#app',
	    data: {
	      info: '今日周五'
	    }
	  })
	</script>
  • 属性:
    • 属性中属性值可以直接写js语法,并且属性值中的数据相当于全局变量
    • 给一个标签加一个自定义属性/已有属性
    • 属性前加 v,Vue中叫做:指令【 借鉴angular 】

2. js的支持性
	<body>
	  <div id="app">
	    <p> {{ num }} </p> <!-- 100 -->
	    <p> {{ str }} </p> <!-- string -->
	    <p> {{ bol }} </p> <!-- true -->
	    <p> {{ nul }} </p> <!-- 空 -->
	    <p> {{ und }} </p> <!-- 空 -->
	    <p> {{ obj.name }} </p> <!-- Vue -->
	    <p> {{ arr[ 0 ] }} </p> <!-- 1 -->
	    <p> {{ fn() }} </p> <!-- 10 -->
	    <!-- <p> {{ console.log( 1 ) }} </p>
	    <p> {{ alert( 1 ) }} </p> -->
	    <p> {{ 1 + 1 }} </p> <!-- 2 -->
	    <p> {{ 5 > 3 ? '真':'假' }} </p> <!-- 真 -->
	    <p> {{ 5 > 3 && '真'||'假' }} </p> <!-- 真 -->
	    <div>
	      <p v-if = "bol"> 猫 </p>
	      <p v-else></p> <!-- 猫 -->
	    </div>
	  </div>
	</body>
	<script src="../../lib/vue.js"></script>
	<script>
	  new Vue({
	    el: '#app',
	    data: {
	      num: 100,
	      str: 'string',
	      bol: true,
	      nul: null,
	      und: undefined,
	      obj: {
	        name: 'Vue'
	      },
	      arr: [ 1,2,3 ],
	      fn: function () {
	        return 10
	      }
	    }
	  })
	</script>
3. 总结
  • null 和 undefined 是不会显示的,其他数据类型都是支持的,可以显示
  • 挂载在window身上的全局属性,不能用,比如:console alert
  • mustache语法中不写流程控制,比如:for if while do…while
  • mustache语法中支持三元表达式、运算符、短路原则
03-08
### MathPix工具介绍 Mathpix Snipping Tool 是一款强大的数学公式识别工具,从最初的原型发展至今已经历了多次迭代和功能增强[^1]。该工具不仅能处理简单的数学表达式,还可以应对复杂的数学模型以及多行公式,并且支持手写公式的识别。 这款应用程序通过不断的科技创新与用户反馈改进,在学术研究和技术领域赢得了良好声誉,成为许多科研人员不可或缺的工作伙伴之一。除了基本的功能外,Mathpix 还提供了多种高级特性来满足不同用户的特定需求。 ### 使用方法 #### 安装与启动 为了使用 Mathpix Snipping Tool ,首先需要下载安装程序并按照提示完成设置过程。一旦成功安装后即可随时调用此应用来进行截图操作。 #### 截取屏幕上的公式图像 当遇到想要转换成 LaTeX 或 AsciiMath 的图片时,只需打开软件界面按下快捷键(默认为 `Ctrl+Alt+M`),此时鼠标指针会变为十字形状以便于选取目标区域;框选所需部分之后松开按键即刻上传至云端服务器等待进一步分析处理。 #### 获取LaTeX代码片段 经过短暂几秒钟的时间延迟过后,所截获的内容将以纯文本形式显示出来供复制粘贴到其他编辑器当中继续编写文档或是分享给他人查看交流之用。 ```python import pyperclip # 假设已获取到LaTeX字符串 stored_in_variable named latex_code pyperclip.copy(latex_code) print("LaTeX code has been copied to clipboard.") ``` 对于希望深入探索更多可能性的用户来说,可以考虑查阅官方提供的扩展插件——如用于解析Markdown文件内的公式标记语法的库 **mathpix-markdown-it** [^2] ——这将进一步提升工作效率和个人体验感。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值