Vue总结篇上 (看完你就学会整个Vue)

1.vue(渐进式javascript框架)

 vue特点

* 组件化 分为独立的一块块

* 声明式  直接有目的去做一件事

* 虚拟DOM 形成一块虚拟区域 你用的时候去匹配一下 有的话直接拿过来用  

* 遵循MVVM的模式

* 编码简洁

* 本身只关注UI,可以轻松引入vue插件或其他第三方库

* 借鉴angular的模板与数据绑定

* 借鉴react的组件与虚拟DOM

 1.1 vm雏形

<div id='app'> 这里是V视图模块 {
  {插值写data里面的数据}}</div>  
<script>
    Vue.config.productionTip = false (防止vue在启动时有提示)
      const vm = new  Vue({        (创建vue实例 这里是VM:视图模型)
          el:'#app',                   (为谁服务就绑定谁id)
          data:{                       (为el服务的 一个家只认定一个主人)
               name:'Sakura',          (这里是M模型)
               age:'22'    
          },
          methods:{     
               change(){
               this.msg = '数据改变了'
                        }              (vm的方法 this指向vm)
       })  
       v.$mount("#app")                 (el的第二种写法)
       data:function(){
                    return{
                        name:'Sakura'
                        age:'22'        (data的第二种写法)
                    }
                }
</script>

1.2vue中的模板

 <div id="app">
    {
  { msg }} 
    {
  { 2+4 }}
    {
  { change() }}
    {
  { parseInt('1.234') }}
    {
  { isBeauty?'大美女':'好姑娘' }}
  </div>

在视图上 输出 vm上数据的 
类似于console.log()只不过 在控制台输出
vue中的模板
{
  {数据}}
特点:
 1,不能写语句 
        var a=10;
        a+b
    2,能不能流程控制 不能写流程控制 只能写三目 或者短路
    3,模板中 js全局变量有些可以使用有些不可以使用(vue有一个白名单)
    'Infinity,undefined,NaN,isFinite,isNaN,' +
    'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
    'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +
    'require' 
重点:
  1 m是什么(vm上的数据 在 new Vue传入对象中的data属性中定义,直接渲染到vm上 作为vm的属性的)
  2 v是指 vm el控制的范围(元素)
  3 vm就是 new Vue返回的实例(控制el内部视图)
  m改变视图会自动刷新

  4 {
  {}} 模板是用来在视图上 渲染 m数据 (js环境)

1.3 vue指令

## vue指令
1. vue有两种绑定方式 
     1.单向绑定(V-bind):数据只能从data传向页面  简写 :属性 将属性的值 变成动态的值  :id="a" 可以绑定id  只有a是真的就行
     2.双向绑定(V-model): 数据两边是双向流通的 一般用于表单类型input元素上
2. v-html  将内容解析成 html (慎重使用,一般后台返回富文本内容时使用)
3. v-text   就是出现纯文本不解析标签
4.v-on简写  @click:事件 将元素的事件 与 methods中的方法进行绑定(方法变成事件函数) 
   @click="fn2(222, $event) 这样就能传参 
5.  v-show 将元素的display属性的值 与 一个布尔值进行绑定
6. v-cloak  [v-cloak]{display:none;} 实例加载完成后 vue会自动去除解决闪烁


1.3.1 vue指令案例

div点击消失
<div id="app">
    <button @click="showHide" id="btn">{
  {isShow?'消失':'显示'}}</button>
    <div id="box" v-show="isShow"></div><!-- v-show   也可以直接写true 和false -->
  </div>
  <script src="./vue.js"></script>
  <script>
   // 创建vm (Vue的实例)
   const vm = new Vue({
     el: '#app', // el定义vm 控制的范围
     // m数据
     data: {
       // 控制某个元素显示消失
        isShow: true
     },
     methods: {
       showHide(){
         // 改变m
         this.isShow = !this.isShow;
       }
     }
   })
  </script>

点击显示对应图片
 <div id="app">
    <div v-bind:id="a">aaaaaa</div>
    <div v-bind:aa="aa">bb</div>
    <label for="img1">佳丽1</label>
    <input type="radio" id="img1" v-model="imgSrc" value="https://img0.baidu.com/it/u=3849172531,2173774839&fm=26&fmt=auto&gp=0.jpg">
    <label for="img2">佳丽2</label>
    <input type="radio" id="img2" v-model="imgSrc" value="https://img0.baidu.com/it/u=2223756706,3188697330&fm=26&fmt=auto&gp=0.jpg">
    <hr>
    <img :src="imgSrc" alt="">
  </div>
  <script src="./vue.js"></script>
  <script>
    const vm = new Vue({
      el: '#app',
      data: {
        AAA:'XXX1',
        a: 'box',
        aa: '自定义属性的值',
        imgSrc:'https://img0.baidu.com/it/u=3849172531,2173774839&fm=26&fmt=auto&gp=0.jpg'
      }
    })
  </script>


点击传参
 <div id="app">  
    <button @click="fn1">按钮1</button>  
    <button @click="fn2(222, $event)">按钮2</button>  
  </div>
  <script src="./vue.js"></script>
  <script>

    const vm = new Vue({
      el: '#app',
      
      methods: {
        fn1(e){
          // 这种方式绑定 fn是事件函数
          console.log(e,111);
          console.log(e.target);//获得事件源 地址
          
        },
        fn2(n, e){
          console.log(n);
          console.log(e,222);
         
        }
      }
    })
    /* 
    原生js中绑定事件
  
    btn.onclick = function(){}
    */
  </script>

1.4事件修饰

```
    修饰符是由点开头的指令后缀来表示的。赋予了事件一些特殊的功能 addEventListener("事件名",函数,true/false)
    
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值