Giter Site home page Giter Site logo

Comments (13)

jakemhiller avatar jakemhiller commented on May 26, 2024

Yeah, I think this should be changed to something that doesn't conflict with ampersand-state.

Maybe change it to find? Sort-of makes it seem like jQuery, but it describes the functionality well.

from ampersand-view.

jrmyio avatar jrmyio commented on May 26, 2024

+1 on find()
It feels like a better name than .get().

from ampersand-view.

wraithgar avatar wraithgar commented on May 26, 2024

We already have precedent for a thing backbone used to have that is easily mixed back in if you are transitioning, or still want it for other reasons https://github.com/whobubble/ampersand-view-jquery-mixin I say rename it and accept mixins w/ open arms.

If it's a querySelector, I'd push for naming the method select

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

Here's what I propose:

query() - takes a regular CSS selector, returns first match (even if first match is root element)
queryAll() - takes regular CSS selector, returns array of all matches (even if that includes root)
queryByHook("hook-name") - builds a CSS selector for you like this: [data-hook="hook-name"] then calls query with that (returns one element).
queryAllByHook("hook-name") - builds CSS selector in the same way as queryByHook then calls queryAll.

For those familiar with querySelector and querySelectorAll it's a clear mental mapping. Select has other meanings in my mind, and is a character longer. /me shrugs. I feel like query is quite understandable.

A possible, shorter alternative would be to simply use q. Then it would look like this:

q()
qAll()
qByHook()
qAllByHook()

But, i'm leaning toward the longer version for readability and clarity.

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

Maybe the *AllByHook isn't really necessary.
query()
queryAll()
queryHook() - note that there's no "By"

^ that looks really clean/simple to me.

from ampersand-view.

legastero avatar legastero commented on May 26, 2024

Looks clean & simple to me too. Don't forget to use the ~= operator in queryHook() :)

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

yeah, good point, should have carried that over from the other discussion.

from ampersand-view.

garrettn avatar garrettn commented on May 26, 2024

Why no queryAllHook()? Seems like it would still come in handy.

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

@garrettn, yeah i suppose. But it's simply not something i've missed thus far building apps using the current getByRole.

from ampersand-view.

latentflip avatar latentflip commented on May 26, 2024

I personally feel that queryHook is a little to abstract

this.query, this.queryAll read pretty well to me. this.queryHook feels odd, it's like I'm adding a hook to a query or something. this.queryByHook seems more clear to me personally.

In context:

this.renderCollection(ItemView, this.collection, this.queryHook('item-list'))

vs

this.renderCollection(ItemView, this.collection, this.queryByHook('item-list'))

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

+1 agreed

from ampersand-view.

latentflip avatar latentflip commented on May 26, 2024

I'm going to merge this and publish as a release candidate so that I can begin to update other modules. If anyone has any pushback on query, queryAll, queryByHook now is the time to make noise.

from ampersand-view.

HenrikJoreteg avatar HenrikJoreteg commented on May 26, 2024

closed in v7.0.0 published now

from ampersand-view.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.