为了账号安全,请及时绑定邮箱和手机立即绑定
  • 页面内容过于复杂,可将组件拆分,可定义全局组件或局部组件:

    1、全局组件:在页面任何地方都能使用

        //定义全局组件

        Vue.component("todo-item", {

            template: "<label>我是全局组件</label>"

        });

        new Vue({

            el: "#root",

        });

    //使用全局组件

     <div id="root">

            <todo-item></todo-item>

        </div>

    2、局部组件:要在外层Vue实例里进行注册

        //定义局部组件

        var todoItem = {

            template: "<label>我是局部组件</label>"

        }

        new Vue({

            el: "#root1",

            components: { //局部组件:要在挂载点(它的外层Vue实例,即此处的root1)进行注册

                "todo-item-1": todoItem

            }

        });

        //使用局部组件

    <div id="root1">

            <todo-item-1></todo-item-1><!--局部组件:只能在挂载点底下使用-->

            <todo-item></todo-item><!--全局组件:在页面任何地方都能使用-->

        </div>

    组件拆分之后的传参问题:外部(html页面)可以通过自定义属性的形式传参,组件要定义props[]接收属性

    //父组件向子组件传递数据:通过属性

        Vue.component("todo-item-2", {

            props: ["content", "index"],//接收从外部传进来的属性content、index

            template: "<li>{{index+1}}、{{content}}</li>"

        });

        new Vue({

            el: "#root2",

            data: {

                inputValue: "",

                list: []

            },

            methods: {

                submitClick: function () {

                    this.list.push(this.inputValue);

                    this.inputValue = "";

                }

            }

        })

    <div id="root2">

            <div>

                <input v-model="inputValue" />

                <button @click="submitClick">提交</button>

            </div>

            <ul> <!--自定义属性content、index-->

                <todo-item-2 v-for='(item,index) of list'

                             :key="index"

                             :content="item"

                             :index="index" 

                >

                </todo-item-2>

            </ul>

        </div>

    笔记来自哈尔波儿

    查看全部
  • v-if="data下的数值";是将元素删除再添加的操作

    v-on ==@    +click:点击事件,事件定义在methods中

    v-show:是将元素的display属性至于none性能更高

    v-for="item of list": item与标签里{{item}}保持一致,list:是实例data下的list数组,这种写法要保证数组内不存在重复的数值。若存在重复则可以(item,index)这样写

    查看全部
  • 挂载点,模版,实例之间的关系

    1. 挂载点:el属性(#root)对应后面id(id="root")所对应的节点;

    2. 模版: 指的是挂载点内部,也可以写在实例里面template属性里面;

    3. 实例:Vue会结合模版和数据生成最终要展示的内容,然后把它放在挂载点之中。

    查看全部
  • <script src="js/vue.js"></script>放在head标签之间,避免抖屏。

    new Vue({

        el: "id",//引用id

    注意vue实例里不同属性用逗号隔开

        data: {


            msg: "hello world"

    }

    })创建vue实例

    通过插值表达式{{}}引用vue实例里面的内容

    查看全部
  • v-on:@绑定事件 v-bind: :绑定属性 computed:计算属性 watch:侦听器
    查看全部
  • 挂载点、模板与实例之间的关系

    挂载点:也就是Vue实例中el属性对应的id的dom节点,Vue只会处理挂载点的内容。

    http://img1.sycdn.imooc.com//5d7512840001b3ec04090083.jpg

    模板:挂载点内部的内容都称作模板内容,其中模板还可以放置在Vue的实例中进行编写,如果使用Vue实例方式,则需要使用标签把数据抱起来。

    http://img1.sycdn.imooc.com//5d75132e000126ec07870355.jpg


     实例:实例需要指定挂载点,还可以指定模板和数据,并且Vue会自动结合模板和数据进行展示。


    查看全部
  • v-bind(缩写":")l:单项属性绑定;根据vue实例中data属性,与其中对象的key值相绑定,可修改相应属性的数据 

    v-model:双向绑定;div中某一个标签的值发生变化后,可以改变vue实例中data属性相应的对象值,反之相同;



    查看全部
  • v-if  控制dom的存在与否

    v-show  控制dom的显示与否

    v-for 循环展示列表  

    查看全部
  • v-on  或者  @   绑定事件

    v-bind  或者  : 绑定属性

    v-model  双向数据绑定

    查看全部
    1. 使用Vue.component注册的属于全局组件,而直接用声明变量方式注册的属于局部组件。用全局组件会简单一点

    2. 如果想要在实例里面使用局部组件,则需要用components属性去声明一下。

    查看全部
  • v-if,v-show与v-for指令:

    1.v-if:当对应data中的值show是true时显示,为false,则把这个标签就移除。

    v-if 和 v-show 用处

    1.v-show 不会像 v-if 每次销毁再重新创建,v-show 性能相对v-if 高一些;

    2.如果标签显示的频率不是那么大,只需要做一次显示或者隐藏,这时候用 v-if 是一个更好的选择。


    2.v-show:而当对应指令值为false时,div标签会隐藏,并不会像v-if那样被清除,只是把div标签的display属性变成none;

    3.v-for:当有一个数据需要做循环展示时,帮助把每一条数据做循环,循环展示li标签;

    1.添加:key=“  ”属性, 可以提升每一项渲染的效率和性能,每一项key值不能相同;

    2.循环list数据列表,每一项内容放入item里面,每一项的下标都会放进index里面,:key 值用index;

    3.如果不需要对列表进行排序,还有很多额外的操作,这时候用index是没有什么问题的;

    4.如果频繁对列表进行变更,将不能使用index,因为index是存在问题的,具体是什么问题自己查阅一下。

    课程代码演示

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <title>v-if,v-show与v-for指令</title>
        <script src="./vue.js"></script>
        </head>
        <body>
        <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>
     </body>
    </html>


    查看全部
  • 1.计算属性(computed:):一个属性通过其他属性计算而来

    好处:

    (只有它依赖的数据发生变化的时候,它才会重新计算;如果依赖的属性没有发生变化,它会利用以前计算结果的缓存来在页面上做显示)

    2.侦听器(watch):指的是监听某一个数字发生了变化,然后就在监听器里面做业务逻辑,

    侦听器watch:监测某一个数据或计算属性发生了变化,一旦这个数据发生了变化,就在该侦听器内写入业务逻辑

    注:watch不仅可以监听vue实例的data内属性,而且可以监听计算computed下计算属性的变化

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <title>计算属性与侦听器</title>
        <script src="./vue.js"></script>
      </head>
      <body>
          <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: '',
                count: 0
            },
            computed: {
              fullName: function() {
                return this.firstName + ' ' + this.lastName
                }
              },
            watch: {
              firstName: function() {
                this.count ++}
            }
          });
        </script>
      </body>
    </html>


    查看全部
  • Vue中的属性绑定和双向数据绑定

    1. v-bind:属性绑定。缩写为冒号  : (:title)

    2. v-model:双向数据绑定,随着数据的修改与之对应的也会修改。

    课程代码演示

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8" />
            <title>属性绑定和双向数据绑定</title>
            <script src="./vue.js"></script>
        </head>
        <body>
            <div id="root">
                <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>
        </body>
    </html>


    查看全部
  • <!-- 挂载点,模版,实例之间的关系 ->

    1. 挂载点:el属性(#root)对应后面id(id="root")所对应的节点;

    2. 模版: 指的是挂载点内部,也可以写在实例里面template属性里面;

    3. 实例:Vue会结合模版和数据生成最终要展示的内容,然后把放在挂载点之中。

    查看全部
  • v-bind:属性绑定。可以缩写:

    v-model:双向数据绑定,随着数据的修改与之对应的也会修改

    查看全部

举报

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下载
官方微信
友情提示:

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