Vue 模板 template

作者: fanison | 来源:发表于2020-05-19 22:13 被阅读0次

    模板 template

    一、 Vue完整版,写在HTML里

    <div id="xxx">
      {{n}}
      <button @click="add">+1</button>
    </div>
    
    new Vue({
      el:'#xxx',
      data: {n:0},
      methods: {add(){}}
    })
    

    二、 Vue完整版,写在选项里

    <div id="app"></div>
    
    new Vue({
      template:`
        <div>
          {{n}}
          <button @click="add">+1</button>
        </div>
      `,
      data:{n:0},
      methods: {add(){this.n +=1}}
    }).$mount('#app')
    // 注意: div#app 会被替代
    

    三、Vue非完整版,配合 xxx.vue文件

    <template>
      <div>
        {{n}}
        <button @click="add">+1</button>
      </div>
    </template>
    <script>
       export default {
         data(){return {n:0}},
         methods:{add(){ this.n +=1 }}
       } 
    </script>
    <style></style>
    
    // 然后在另外一个地方写如下代码:
    import Xxx from './xxx.vue'
    new Vue({
      render: h => h(Xxx)
    }).$mount('#app')
    

    template语法

    展示内容

    • 表达式
    {{ object.a }} 表达式
    {{ n + 1 }} 运算
    {{ fn(n)}} 调用函数
    值为 undefined 或 null 就不显示
    另一种写法为 <div v-text="表达式"></div>
    
    • HTML

    假设 data.x 值为 <strong> hi </strong>
    <div v-html="x"></div> 即可显示粗体的hi

    • 展示{{n}}

    <div v-pre>{{ n }}</div>

    绑定属性

    • 绑定src
      <img v-bind:src="x" />
    • v-bind: 简写
      <img :src="x" />
    • 绑定对象
      <div :style="{border:'1px solid red',height:100}"></div>

    此处 100px 可以写成 100

    绑定属性

    • v-on: 事件名
    <button v-on:click="add">+1</button>
    // 点击之后,Vue会运行 add()
    <button v-on:click="xxx(1)">xxx</button>
    // 点击之后,Vue会运行 xxx(1)
    <button v-on:click="n += 1">xxx</button>
    // 点击之后,Vue会运行 n+=1
    
    • 缩写
    <button @click="add">+1</button>
    <button @click="xxx(1)">xxx</button>
    <button @click="n += 1">xxx</button>
    

    条件判断

    • if...else
    <div v-if="x>0">
      x 大于 0
    </div>
    <div v-else-if="x === 0">
      x 为 0
    </div>
    <div v-else> x 小于 0</div>
    

    循环

    • for(value,key) in 对象或数组
    <ul>
      <li v-for="(u,index) in users" :key="index">
        索引:{{index}} 值:{{u.name}}
      </li>
    </ul>
    <ul>
      <li v-for="(value,name) in obj" :key="name">
        属性名:{{name}},属性值:{{value}}
      </li>
    </ul>
    

    显示、隐藏

    • v-show
    <div v-show="n%2 === 0">n 是偶数</div>
    
    • 近似等于
    <div :style="{display:n%2===0?'block':'none'}">n 是偶数</div>
    

    相关文章

      网友评论

        本文标题:Vue 模板 template

        本文链接:https://www.haomeiwen.com/subject/unoiohtx.html