Vue入门

1、Vue概念:

  • Vue 是用于构建界面的javascript 库
  • Vue 是数据双向绑定的框架
  • Vue 是以数据驱动为主javascript库。数据改变更新页面,页面改变更新数据

  • Vue是一种MVVM模式


    // MVVM: 是一种软件设计模式
    // MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。
    // MVVM模式有助于将应用程序的业务和表示逻辑与用户界面 (UI) 清晰分离。 
    // 保持应用程序逻辑和UI之间的清晰分离有助于解决许多开发问题,并使应用程序更易于测试、维护和演变。

2、编写方式:

传统的:声明式编程(注重结果)

<div  id="app">
      <button  v-on:click="foo">点击按钮</button>
</div>

<script>
    new Vue({
         el:"#app",
         methods: {
                foo(){ console.log("触发了点击事件")}
         }
    })
</script>

vue的:命令式编程 (注重过程)

<div  id="app">
      <button  v-on:click="foo">点击按钮</button>
</div>
<script>
    let button  = document.querySelector("#app button");
   button.onclick = function(){
  		 console.log("触发了点击事件")
   }
</script>

3、vue数据响应式原理:

vue@2版本,采用defineProperty方法实现,监听数据的改变。

<div id="root">
    <input type="text" class="inp">
    <h3 class="title"></h3>
</div>

<script>
    // 获取标签
    const inp_element = document.querySelector("#root input")
    const title_element = document.querySelector("#root .title")
    // 数据
    let data = {
        text: ""
    }
    // 定义储存器变量 (意义就是储存数据)
    // let _text = "";
    // 观察data的text属性的改变
    Object.defineProperty(data,"text", {
        // 读
        get(){
            // console.log("读取text")
            return this._text;
        },
        // 写
        set(value){
            // console.log("写入text")
            this._text = value;
            // 更新页面
            title_element.innerText = inp_element.value;
        }
    })
    // 赋值表示写入 (带等于号)
    // data.text = "123";
    // 读取
    // console.log(data.text);
    // 数据双向绑定
    // 1: 数据改变更新页面
    // 2: 页面更新改变数据
    inp_element.oninput = () => {
        // 改变数据
        data.text = inp_element.value;
    }
</script>

4、vue编写步骤

  • 引入vue.js
  • 创建Vue实例
  • 设置挂载点

5、模板语法 {{}}

<!-- 插值表达式 {{ js }} -->
<div id="app" v-cloak>
    <h2>{{123}}</h2>
    <!-- 报错 直接填写abc, 既不是字符串,也不是变量 -->
    <!-- <h2>{{abc}}</h2> -->
    <h2>{{'abc'}}</h2>
    <!-- 可以书写三元运算 -->
    <h2>{{typeof 'abc' === 'string' ? '字符串类型':'其他类型'}}</h2>
    <!-- 可以填写变量 -->
    <h2>{{title}}</h2>
  

</div>
<script src="./libs/vue@2.7.16/vue.js"></script>
<script>
    //禁止控制台输出日志信息
    Vue.config.productionTip = false;
    new Vue({
        //挂载容器
        el: "#app",
        // 添加属性
        data: {
            title: "标题2222"
        }
    })
</script>

6、指令 (一种操作页面标签的方式)

设置文本

v-text:文本 
v-html: 超链接(html标签 )

设置属性

v-bind

设置数据双向绑定

v-model

条件渲染

v-show
v-if
区别:
1):
v-if:根据表达式的真假值来条件性地渲染一个元素。如果表达式的值为真,则渲染该元素;如果为假,则不渲染该元素。这意味着每次条件变化时,Vue 都会销毁和重建条件块内的事件监听器和子组件。
v-show:无论表达式的真假值如何,都会渲染元素,并通过 CSS 的 display 属性来控制其可见性。如果表达式的值为真,则元素可见;如果为假,则元素隐藏。这意味着元素始终存在于 DOM 中,只是其可见性会发生变化。

2):
由于 v-if 在条件变化时会销毁和重建元素,因此当条件频繁变化时,它可能会导致性能问题。
而 v-show 只是简单地切换元素的可见性,不涉及 DOM 的销毁和重建,因此在这种情况下性能更好。

3):
对于 v-if,如果初始条件为假,则不会渲染元素。只有当条件变为真时,才会开始渲染。而 v-show 则始终渲染元素,并根据条件来设置其可见性。

4):
v-if 更适合用于条件性地渲染那些不经常改变的内容。例如,你可能希望根据用户的权限来显示或隐藏某些内容。
v-show 更适合用于频繁切换显示/隐藏状态的元素,如切换按钮、折叠面板等。

列表渲染

v-for

事件绑定

v-on:不带on的事件=
简写为:@不带on的事件=
组合
如:v-on:keydown.enter=

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值