web前端框架vue之指令

<script src="js/vue.js"></script>
  <body>
    <div id="app">
      <div>{{msg}}</div> 
      <!-- 输出Hello world vue -->
      <div>{{1+2}}</div>
      <!-- 数字类型的自动相加,输出3 -->
      <div>{{msg+'----'+123}}</div>
      <!-- 字符串拼接,输出Hello world vue----123 -->
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          msg: "Hello world vue"
        }
      });
    </script>

vue之Hello world的步骤:
1,需要提供使用的标签
2,引入vue.js文件
3,可以使用vue的语法做功能
4,把vue提供的数据填充到标签中
el是指元素挂载位置(值是css选择器或者dom元素)
data是模型数据
{{msg}}是差值表达式,填充到html里,进行前端渲染
vue代码运行原理,vue代码--->vue框架--->原生js

什么是vue的指令?
自定义属性就是vue的指令。
v-cloak解决“闪动”问题。

<style type="text/css">
    [v-cloak]{
          display:none
       }
    </style>

<div id="app">
      <div v-cloak>{{msg}}</div> 
      <!-- 输出Hello world vue -->
    </div>
    <script>
      /*
       v-cloak指令的用法
       1,提供样式
       [v-cloak]{
          display:none
       }
        2,在差值表达式所在的标签中添加v-cloak指令
        原理:先通过样式隐藏内容,然后在内存中进行值的替换,替换好之后再显示最终的结果,解决了“闪动”问题
       */
      var vm = new Vue({
        el: "#app",
        data: {
          msg: "Hello world vue"
        }
      });
    </script>

v-text,v-html,v-pre它们的作用和区别是什么?
v-text的作用和差值表达式一样,更简洁一些,不存在“闪动问题”,推荐使用v-text而不推荐使用差值表达式。
v-html的作用是能直接渲染出html的样式,但是很不安全,慎重使用,容易遭到xss跨站脚本攻击;本网站内部数据可以使用,第三方数据不能使用。
v-pre的作用是能渲染出html原始信息,不进行编译。

<div id="app">
      <div>{{msg}}</div> 
      <div v-text='msg'></div>
      <!-- 输出结果是Hello world vue -->
      <div v-html='msg1'></div>
      <!-- 输出h1标签大小的HTML字符串 -->
      <div v-pre>{{msg}}</div>
      <!-- 输出{{msg}} -->
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          msg: "Hello world vue",
          msg1:'<h1>HTML</h1>'
        }
      });

什么是vue的数据响应式?什么是vue的数据绑定?
html5中的响应式指屏幕尺寸变化导致样式变化,vue的数据响应式指数据变化导致页面内容变化。

v-once的作用和应用场景是什么?
v-once只编译一次,显示内容后不再具有数据响应式。对于某些不需要修改的数据来说,使用v-once能提高性能,因为不需要监听它的变化。

v-model数据双向绑定的作用和应用场景是什么?
v-model数据双向绑定主要用于input输入框,无论是修改输入框里的内容还是data模型数据里的数据,都会产生变化。代码如下,核心代码是v-model='msg',绑定了data中的msg

<div id="app">
      <div>{{msg}}</div> 
      <div>
        <input type="text" v-model='msg'>
      </div>
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          msg: "Hello world vue"
        }
      });

vue事件绑定的基本用法是什么?
使用v-on进行事件绑定,点击按钮使其加1。

 <div id="app">
      <div>{{num}}</div>
      <div>
        <button v-on:click='num++'>点击</button>
        <button @click='handle'>点击2</button>
      </div>
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          num: 0
        },
        methods: {
          handle: function () {
            this.num++;
          }
        }
      });
    </script>

当业务量增加的时候,所有的事件处理写在一起效率很低,维护困难,因此可以把事件写在methods里,调用methods里的方法时,直接调用函数名或者直接调用函数。

简单的加法计算器,原理为数据双向绑定和事件绑定
样式部分:

<div id="app">
    <h1>简单计算器</h1>
    <div>
      <span>数值A:</span>
      <span>
        <input type="text" v-model='a'>
      </span>
    </div>
    <div>
      <span>数值B:</span>
      <span>
        <input type="text" v-model='b'>
      </span>
    </div>
    <div>
      <button v-on:click='handle'>计算</button>
    </div>
    <div>
      <span>计算结果:</span>
      <span v-text='result'></span>
    </div>
  </div>

逻辑部分:

var vm = new Vue({
      el: '#app',
      data: {
        a: '',
        b: '',
        result: ''
      },
      methods: {
        handle: function(){
          // 实现计算逻辑
          this.result = parseInt(this.a) + parseInt(this.b);
        }
      }
    });

vue属性绑定,可以动态的修改url属性,默认百度url,点击切换后再点击a标签跳转到淘宝,因为修改了url地址

 <div id="app">
      <a v-bind:href="url">默认百度</a>
      <button v-on:click="handle">切换淘宝</button>
    </div>
    <script>
      var vm = new Vue({
        el: "#app",
        data: {
          url:'https://www.baidu.com'
        },
        methods: {
          handle: function(){
            // 修改url地址
            this.url = 'https://www.taobao.com'
          }
        }
      });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352