为了账号安全,请及时绑定邮箱和手机立即绑定
  • http://img1.sycdn.imooc.com//6062de5d0001a12106310470.jpg@click=v-on:click

    click绑定事件 方法写在vue中methods

    写完一个data或者el后边加上,

    this.content可以直接修改content值

    查看全部
  • v-if 会将标签移除 销毁和重建dom 适合一次隐藏 v-show 给标签添加display:none 适合多次显示隐藏
    查看全部
  • 事件绑定 v-on: 简写 @ 属性绑定 v-bind: 简写 : 双向数据绑定 v-model
    查看全部
  • 面向数据,无需操作DOM
    查看全部
  • 1. vue.js引入放在head中防止抖屏 2. v-text会转义 v-html不转义
    查看全部
  • <div id="root">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleSubmit">提交</button>
        </div>
        <ul>
           <todo-item
               v-for="(item,index) of list"
               :key="index"
               :content="item"
               :index="index"
               @delete="handleDelete"
           >
           </todo-item>
        </ul>
    </div>
    <script>
        //全局组件
        Vue.component('todo-item',{
            props:['content','index'],
            template:'<li @click="handleClick">{{content}}</li>',
            methods:{
                handleClick:function(){
                    this.$emit('delete',this.index)
                }
            }
        })
        
        new Vue({
            el:"#root",
            data:{
                inputValue:'',
                list:[]
            },
            methods:{
                handleSubmit:function(){
                    this.list.push(this.inputValue)
                    this.inputValue=''
                },
                handleDelete:function(index){
                    this.list.splice(index,1)
                }
            }
        })
    </script>

    定义在父模板里的方法,就是在父组件里面执行的。

    父组件通过属性的形式向子组件传递数据;子组件通过发布事件,父组件订阅事件,来实现子组件向父组件传递数据。

    查看全部
  • 每一个Vue组件都是一个Vue的实例,每一个Vue项目都是由千千万万个Vue实例组成的。

    一个根实例,如果没有定义模板,那么会把挂载点下的内容都作为模板来使用。

    查看全部
  • <div id="root">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleSubmit">提交</button>
        </div>
        <ul>
           <todo-item
               v-for="(item,index) of list"
               :key="index"
               :content="item"
           >
           </todo-item>
        </ul>
    </div>
    <script>
        //全局组件
        Vue.component('todo-item',{
            props:['content'],
            template:'<li>{{content}}</li>'
        })
        
        new Vue({
            el:"#root",
            data:{
                inputValue:'',
                list:[]
            },
            methods:{
                handleSubmit:function(){
                    this.list.push(this.inputValue)
                    this.inputValue=''
                }
            }
        })
    </script>
    查看全部
  • <div id="root">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleSubmit">提交</button>
        </div>
        <ul>
           <todo-item></todo-item>
        </ul>
    </div>
    <script>
        //全局组件
        Vue.component('todo-item',{
            template:'<li>item</li>'
        })
        
        //局部组件
        //var TodoItem={
        //    template:'<li>item</li>'
        //}
        
        new Vue({
            el:"#root",
            //components:{
            //    'todo-item':TodoItem
            //},
            data:{
                inputValue:'',
                list:[]
            },
            methods:{
                handleSubmit:function(){
                    this.list.push(this.inputValue)
                    this.inputValue=''
                }
            }
        })
    </script>

    将li标签拆成一个组件。

    查看全部
  • <div id="root">
        <div>
            <input v-model="inputValue"/>
            <button @click="handleSubmit">提交</button>
        </div>
        <ul>
            <li v-for="(item,index) of list" :key="index">
            {{item}}
            </li>
        </ul>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                inputValue:'',
                list:[]
            },
            methods:{
                handleSubmit:function(){
                    this.list.push(this.inputValue)
                    this.inputValue=''
                }
            }
        })
    </script>
    查看全部
  • v-if:

    <div id="root">
        <div v-if="show">hello world</div>
        <button @click="handleClick">toggle</button>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                show:true
            },
            methods:{
                handleClick:function(){
                    this.show=!this.show;
                }
            }
        })
    </script>

    v-show:

    <div id="root">
        <div v-show="show">hello world</div>
        <button @click="handleClick">toggle</button>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                show:true
            },
            methods:{
                handleClick:function(){
                    this.show=!this.show;
                }
            }
        })
    </script>

    v-if和v-show的区别:

    当v-if定义的数据项的值为false,就移除所在的dom标签。

    当v-show定义的数据项的值为false,不会移除标签,只是将标签的display属性设置为none。

    v-for:

    <div id="root">
        <div v-show="show">hello world</div>
        <button @click="handleClick">toggle</button>
        <ul>
            <li v-for="(item,index) of list" :key="index">{{item}}</li>
        </ul>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                show:true,
                list:{1,2,3}
            },
            methods:{
                handleClick:function(){
                    this.show=!this.show;
                }
            }
        })
    </script>

    v-for可以用来作页面上数据的循环展示

    v-if:控制dom的存在与否

    v-show:控制dom的显示与否

    v-for:控制一组数据在页面上的显示

    查看全部
  • 计算属性:

    以下例子中fullname作为一个计算属性。

    <div id="root">
        姓:<input v-model="firstName"/>
        名:<input v-model="lastName"/>
        <div>{{fullName}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:'',
                lastName:''
            },
            computed:{//表示一个属性由其他属性计算而来
                fullName:function(){
                    return this.firstName+' '+this.lastName
                }
            }
        })
    </script>

    计算属性的两个数据项没有发生变化时,它不会再次进行计算,会使用上次计算结果的缓存来赋值给计算属性。

    侦听器:监听某一个数据或者计算属性,若其发生变化,就可以在侦听器里写业务逻辑。

    <div id="root">
        姓:<input v-model="firstName"/>
        名:<input v-model="lastName"/>
        <div>{{fullName}}</div>
        <div>{{count}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:'',
                lastName:''
            },
            computed:{//表示一个属性由其他属性计算而来
                fullName:function(){
                    return this.firstName+' '+this.lastName
                }
            },
            watch:{
                firstName:function(){
                    this.count++
                },
                lastName:function(){
                    this.count++
                }
            }
        })
    </script>

    更为简单的写法:直接监听计算属性fullName

    <div id="root">
        姓:<input v-model="firstName"/>
        名:<input v-model="lastName"/>
        <div>{{fullName}}</div>
        <div>{{count}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstName:'',
                lastName:''
            },
            computed:{//表示一个属性由其他属性计算而来
                fullName:function(){
                    return this.firstName+' '+this.lastName
                }
            },
            watch:{
               fullName:function(){
                   this.count++
               }
            }
        })
    </script>
    查看全部
  • title(提示语)的使用:

    http://img1.sycdn.imooc.com//605847550001a3e706500363.jpg

    http://img1.sycdn.imooc.com//6058476c0001d8fc02320073.jpg

    属性绑定:

    将标签里的title属性和实例里的title数据项的值绑定。

    使用模板指令,类似v-bind:title="...",...中的内容就变成了js语句

    v-bind:可以简写为:

    <div>
        <div :title="title">hello world</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                title:"this is hello world"
            }
        })
    </script>

    单向绑定:数据决定页面的显示,页面无法改变数据的内容。

    双向绑定:v-model

    本文框里的内容改变的时候,div里的content内容改变。

    div里的content有内容的时候,本文框里的内容也会改变。

    <div>
        <div :title="title">hello world</div>
        <input v-model="content"/>
        <div>{{content}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                title:"this is hello world"
                content:"this is content"
            }
        })
    </script>
    查看全部
  • 插值表达式:{{...}}

    <div id="root">
        <h1>{{number}}</h1>
    </div>
    <script>
        new Vue({
            el:"root"
            data:{
                number:123
            }
        })
    </script>

    v-text和v-html的区别:

    v-html不会转译,v-text会进行一次转译。

    http://img1.sycdn.imooc.com//60584348000161cd04790444.jpg

    结果:<h1>hello</h1>

    http://img1.sycdn.imooc.com//60584391000198b004670443.jpg

    结果:hello

    给div标签绑定事件(v-on):

    "v-on:"的简写是@

    <div id="root">
        <div v-on:click="handleClick">{{content}}</div>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                content:"hello"
            },
            methods:{
                handleClick:function(){
                    this.content="world"
                }
            }
        })
    </script>
    查看全部

举报

0/150
提交
取消
课程须知
1、对Javascript基础知识已经掌握。 2、对Es6和webpack有简单了解。
老师告诉你能学到什么?
使用Vue2.0版本实现响应式编程 2、理解Vue编程理念与直接操作Dom的差异 3、Vue常用的基础语法 4、使用Vue编写TodoList功能 5、什么是Vue的组件和实例 6、Vue-cli脚手架工具的使用 7、但文件组件,全局样式与局部样式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!