请教个前端同学关于 new vue 和 vue.extend 的区别。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaomajia008
V2EX    程序员

请教个前端同学关于 new vue 和 vue.extend 的区别。。

  •  
  •   xiaomajia008 2016-03-14 14:01:00 +08:00 17762 次点击
    这是一个创建于 3499 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第一次用 MVVM 的框架。后端知识完全不懂。
    在使用过程中有个问题。。


    我的 components 里是

    var xxx = vue.extend({});

    exports xxx;


    然后我看了看文档。现在有点分不清 new vue 和 vue.extend 的区别,导致一些 api 方法用起来有错误。。
    12 条回复    2019-08-03 22:39:24 +08:00
    Lxxyx
        1
    Lxxyx  
       2016-03-14 14:04:33 +08:00
    new vue 是新建 vue 对象,需要绑定元素的。 vue.extend 是新建 vue 组件,使用依赖于 vue 对象。
    zhuangzhuang1988
        2
    zhuangzhuang1988  
       2016-03-14 14:12:00 +08:00
    额. 看源码 调试调试..
    Wangxf
        3
    Wangxf  
       2016-03-14 14:35:43 +08:00   1
    @Lxxyx vue.extend 应该是临时保存吧, vue.component 才是新建组建吧
    Lxxyx
        4
    Lxxyx  
       2016-03-14 14:39:09 +08:00
    @Wangxf 抱歉,一下子弄混了
    dearmadman
        5
    dearmadman  
       2016-03-14 15:08:30 +08:00
    ```Javascript

    var myOptiOns= {
    el: '#example',
    data: {
    message: 'Hello'
    }
    }

    var theOptiOnsInstance= Vue.extend(myOption)

    var instance = new theOptionsInstance()

    -------------------------------------------------------

    var plain = new Vue()

    // options

    var optiOnsInstance= new Vue(myOptions)

    从而可以看出 extend 是 vue 用预定义选项来创建可复用组件的构造器

    ```
    xiaomajia008
        6
    xiaomajia008  
    OP
       2016-03-14 16:28:16 +08:00
    @dearmadman
    @Lxxyx

    感谢两位回答,我还有个问题。

    vue 里面如果我想获取input 的 value ,只能通过绑定 v-model 的形式嘛?不建议从组件里的方法获取 dom 的 value 吗?
    dearmadman
        7
    dearmadman  
       2016-03-14 16:52:13 +08:00
    v-model 就是用来做表单控件的双向绑定的, 你当然也可以手动获取 dom
    只不过 viewModel 封装了更好的方式,为什么不用呢
    swenyang
        8
    swenyang  
       2016-03-14 16:58:22 +08:00
    new 相当于面向对象语言里面的创建对象实例, extend 相当于继承类,新类的成员和函数等声明在 extend({})里面
    life4s
        9
    life4s  
       2017-11-01 15:19:39 +08:00
    @Lxxyx @Wangxf 你们不自个看一下吗?@Lxxyx 说的没错,extend 确实是返回一个组件的构造器,component 也是一样的,也会返回组件构造器。
    life4s
        10
    life4s  
       2017-11-01 15:27:16 +08:00
    也是醉了,有人点赞,有人感谢,有人把自己对的改成错的。。。
    xtrueman83
        11
    xtrueman83  
       2019-08-03 22:17:52 +08:00
    vue 作者的命名水平太差了 净乱用 啥 extend use 应该好好看看计算机英语这本书
    xtrueman83
        12
    xtrueman83  
       2019-08-03 22:39:24 +08:00
    extend 方法返回一个 Vue 扩展实例构造器
    关于     帮助文档     自助推广系统     博客     API     FAQ   Solana     933 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 18:44 PVG 02:44 LAX 11:44 JFK 14:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86